O arquivo pode estar no formato TXT ou no formato CVS que poderá ser aberto em vários editores. Segue abaixo um exemplo de arquivos de dados.
1 passo: Criar um arquivo .ctl com a seguite estrutura
LOAD DATA
INFILE 'imp_uo.txt' --arquivo a ser importado
INTO TABLE IMP_UO -- tabela que ira receber os dados
FIELDS TERMINATED BY ';' -- delimitador
(NIDENTIFICADOR, SNUMERO, SNOME, SORGAO, SUGRESP) -- campos da tabela
2 passo: Executar o comando no prompt do DOS
sqlldr userid=usuario/senha@instancia control=arquivodopasso1.ctl log=logfile.log
quarta-feira, 27 de outubro de 2010
quinta-feira, 14 de outubro de 2010
COMO BLOQUEAR CONEXÕES DE APLICATIVOS
CREATE OR REPLACE TRIGGER "SYS"."AUDIT_LOGON" AFTER LOGON ON DATABASE
DECLARE
v_sid number;
v_program varchar2(64);
v_msg varchar2(200);
BEGIN
EXECUTE IMMEDIATE 'SELECT DISTINCT sid FROM sys.v_$mystat'
INTO v_sid;
EXECUTE IMMEDIATE 'SELECT program FROM sys.v_$session WHERE sid = :b1'
INTO v_program
USING v_sid;
v_msg := 'Tentativa de conexao com: ' ||v_program||' recusada!!!';
-- programas bloqueados
IF (UPPER(v_program) LIKE '%TOAD%' OR
UPPER(v_program) LIKE '%PLSQLDEV%' OR
UPPER(v_program) LIKE '%MSACCESS%' OR
UPPER(v_program) LIKE '%EXCEL%' OR
UPPER(v_program) LIKE '%PLUS%') THEN
RAISE_APPLICATION_ERROR(-20000,v_msg,true);
END IF;
END;
DECLARE
v_sid number;
v_program varchar2(64);
v_msg varchar2(200);
BEGIN
EXECUTE IMMEDIATE 'SELECT DISTINCT sid FROM sys.v_$mystat'
INTO v_sid;
EXECUTE IMMEDIATE 'SELECT program FROM sys.v_$session WHERE sid = :b1'
INTO v_program
USING v_sid;
v_msg := 'Tentativa de conexao com: ' ||v_program||' recusada!!!';
-- programas bloqueados
IF (UPPER(v_program) LIKE '%TOAD%' OR
UPPER(v_program) LIKE '%PLSQLDEV%' OR
UPPER(v_program) LIKE '%MSACCESS%' OR
UPPER(v_program) LIKE '%EXCEL%' OR
UPPER(v_program) LIKE '%PLUS%') THEN
RAISE_APPLICATION_ERROR(-20000,v_msg,true);
END IF;
END;
quinta-feira, 12 de agosto de 2010
Alterando Tablespaces de tabelas e índices no Oracle
http://www.midstorm.org/~telles/2008/06/26/alterando-tablespaces-de-tabelas-e-indices-no-oracle/
terça-feira, 10 de agosto de 2010
Listar Colunas das Tabelas
Para listar as colunas de uma tabela ou esquema basta executar a seguinte consulta como SYS.
SELECT * FROM ALL_TAB_COLUMNS
SELECT * FROM ALL_TAB_COLUMNS
quarta-feira, 7 de julho de 2010
Import / Export
imp system/senha@tns fromuser=usuario touser=usuario file=arquivo.dmp log=arquivo.log analyze=no ignore=yes buffer=100000
exp system/senha@tns owner=nomedoesquema file=nomedoesquema.dmp log= nomedoesquema.log compress=no consistent=yes statistics = none
exp system/senha@tns owner=nomedoesquema file=nomedoesquema.dmp log= nomedoesquema.log compress=no consistent=yes statistics = none
segunda-feira, 31 de maio de 2010
OBJETOS INVÁLIDOS
Para listar os objetos inválidos na sua base de dados execute a sequinte instrução SQL
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE STATUS = 'INVALID' ORDER BY OWNER,OBJECT_TYPE;
Para recompilar objetos inválidos na base basta executar o seguinte comando:
@?/rdbms/admin/utlrp.sql
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE STATUS = 'INVALID' ORDER BY OWNER,OBJECT_TYPE;
Para recompilar objetos inválidos na base basta executar o seguinte comando:
@?/rdbms/admin/utlrp.sql
segunda-feira, 24 de maio de 2010
Alterando uma TableSpace
As vezes acontece de criarmos uma tabela apontando para uma tablespace errada, se isso acontecer não se desespere, temos como alterar esse valor passando a apontar para a tablespace desejada, para isso execute o seguinte script:
ALTER TABLE MOVE TABLESPACE
Como não iremos fazer isso para todas as tabelas criei um scrit para facilitar a vida. hehe
SELECT 'ALTER TABLE ' ( TABLE_NAME ) ' MOVE TABLESPACE ' FROM DBA_TABLES WHERE OWNER = 'DONO DO OBJETO';
Detalhes, se a tabela tiver campo BLOG.. vai da pau
OBS: Troque os parenteses () por PIPE
ALTER TABLE
Como não iremos fazer isso para todas as tabelas criei um scrit para facilitar a vida. hehe
SELECT 'ALTER TABLE ' ( TABLE_NAME ) ' MOVE TABLESPACE
Detalhes, se a tabela tiver campo BLOG.. vai da pau
OBS: Troque os parenteses () por PIPE
quarta-feira, 12 de maio de 2010
Matar sessão
Para matar a sessão de um determiando usuário primeiro você deve saber o seu SID e SERIAL, para isso basta executar a sql logado como SYS
SELECT SID, SERIAL#, USERNAME, MACHINE FROM V$SESSION
Após descobrir o SID e SERIAL execute:
ALTER SYSTEM KILL SESSION 'SID_DESEJADO, SERIAL#_DESEJADO' IMMEDIATE;
SELECT SID, SERIAL#, USERNAME, MACHINE FROM V$SESSION
Após descobrir o SID e SERIAL execute:
ALTER SYSTEM KILL SESSION 'SID_DESEJADO, SERIAL#_DESEJADO' IMMEDIATE;
Alterando valor do total de erros de login
O Oracle por questões de segurança limita o usuário errar a sua senha no máxim 10 vezes, após isso a conta do usuário é bloqueada gerando o erro ORA-28000, para evitar isso podemos alterar o parâmetro que limita essa quantidade, lembrando que fazendo isso você estará tirando a segurança do seu banco de dados, para verificar esse valor execute o seguinte script como SYS:
SELECT * FROM DBA_PROFILES WHERE PROFILE = 'DEFAULT' AND RESOURCE_NAME = 'FAILED_LOGIN_ATTEMPTS'
A coluna LIMIT informa o total de erros de login. Para alterar esse valor faça:
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS "NOVO_VALOR";
SELECT * FROM DBA_PROFILES WHERE PROFILE = 'DEFAULT' AND RESOURCE_NAME = 'FAILED_LOGIN_ATTEMPTS'
A coluna LIMIT informa o total de erros de login. Para alterar esse valor faça:
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS "NOVO_VALOR";
Desbloqueando Usuario
Quando você recebe o erro ORA-28000: The account is locked é porque o usuário errou a senha inúmeras vezes, pra ser mais específico 10 vezes, isso é o valor default que o oracle permite. Então para desbloquear a conta do usuário você deverá executar o seguinte script como SYS:
ALTER USER "NOME DO USUARIO" IDENTIFIED BY "NOVA SENHA" ACCOUNT UNLOCK;
Com isso você irá definir uma nova senha para o usuário bloqueado e ele estará disponível para fazer o login no Oracle.
ALTER USER "NOME DO USUARIO" IDENTIFIED BY "NOVA SENHA" ACCOUNT UNLOCK;
Com isso você irá definir uma nova senha para o usuário bloqueado e ele estará disponível para fazer o login no Oracle.
sexta-feira, 7 de maio de 2010
Recuperar senha do usuário SYS
Caso você tenha esquecido a senha do usuario SYS ou SYSTEM, não se desespere hehe, no Oracle tem como você redefinir essas senhas. Para isso você deve seguir os seguintes passos:
1 - remova o arquivo PWD.ORA , caso esteja com medo basta renomeá-lo. Esse arquivo encontra-se no diretorio $ORACLE_HOME/database ou $ORACLE_HOME/dbs
2 - No prompt de comando digite: ORAPWD file= diretorio\PWD.ORA password=novasenha
Pronto com isso você redefiniu a senha do usuario SYS, para testar entre no sqlplus utilizando a nova senha.
SQLPlus sys/novasenha as sysdba
1 - remova o arquivo PWD
2 - No prompt de comando digite: ORAPWD file= diretorio\PWD
Pronto com isso você redefiniu a senha do usuario SYS, para testar entre no sqlplus utilizando a nova senha.
SQLPlus sys/novasenha as sysdba
Descobrindo objetos criados
Para listar os objetos criados em uma determinada data/hora basta fazer uma consulta na tabela DBA_OBJECTS, nela existe um campo CREATED que indica a data e hora em que o objeto foi criado.
Isso me salvou de deixar "lixo" para o usuario SYS.. hehe
Isso me salvou de deixar "lixo" para o usuario SYS.. hehe
Assinar:
Postagens (Atom)