My Oracle Reference

Banco de Dados Oracle  Exportando e importando um  banco de dados Abra  uma janela shell, execute o comando  exp para exporter o banco de dados. Ele pedir&aacute; as seguintes informacoes: username, password, array (4096), nome do arquivo (&lt;arquivo&gt;.dmp), o qu&ecirc; dever&aacute; ser exportado (2 users = tudo, incluindo os usuarios), grant (permissoes), table (tabelas), compress (yes)Para importar execute os seguintes passos num sistema Unix:Abra o Oracle Console Management e crie uma Tablespace na opcao &ldquo;Speicher&rdquo; e se possivel crie uma tablespace para os indices em separado.Crie depois um usuario, entre com o nome e a senha. Associe as Tablesspaces para o usu&aacute;rio. Clique no fich&aacute;rio &ldquo;Rolle&rdquo; e associe os Rolles &ldquo;Connect&rdquo; e &ldquo;Resource&rdquo;. Clique no fich&aacute;rio System e associe a opcao &ldquo;Unlimited tablespace&rdquo;.Abra uma janela shell e execute os seguintes commandos:Set  ORACLE_SID = SALESSRV (por exemplo) Imp   Da&iacute; entre com o nome do usuario, senha e nome do arquivo a importar. Verifique se houve mensagens de erro a importar. Se der um erro com o tipo de caractere (Zeichencode), ignore o erro e verifique se os dados foram importados corretamente.</li></ul> Configurando o ambiente do sistema de banco de dados p&aacute;gs. 185-195 Podemos alterar o modo em que os dados s&atilde;o exibidos ou gravados no banco de dados em 3  escopos diferentes: Alterando  o valor default para todos os usu&aacute;rios do banco de dados, alterando-se o  arquivo init.ora</li>Alterando o valor de forma permanente na m&aacute;quina de um usu&aacute;rio, alterando-se o valor de vari&aacute;vies de ambiente, no registro do windows (HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME?) ou acrescentado vari&aacute;veis de ambiente no windows, clicando no &ldquo;painel de controle-&gt; sistema-&gt;vari&aacute;veis de sisttema&rdquo;.</li>Alterando  o valor somente da sess&atilde;o atual, utilizando para isso o comando &ldquo;ALTER SESSION&rdquo;</li></ul></li></ul> Os comandos  a seguir verificam a atual configura&ccedil;&atilde;o do sistema para o formato de data e  moeda (mais usados):  SELECT  SYS_CONTEXT ('USERENV','NLS_DATE_FORMAT') FROM DUAL; SELECT SYS_CONTEXT ('USERENV','NLS_CURRENCY') FROM DUAL;  O comando a  seguir altera o territ&oacute;rio e depois o formato de data:  ALTER SESSION SET  NLS_TERRITORY=AMERICA; ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/RRRR HH24:MI'; forms_ddl('ALTER SESSION SET NLS_NUMERIC_CHARACTERS=,.'); (in Forms)  * Consulte as p&aacute;ginas 91, 92  e 93 para saber mais sobre os s&iacute;mbolos de altera&ccedil;&atilde;o de moeda e data. Dicas Dicas da Internet - <a href="http://www.psoug.org/reference/user.html">http://www.psoug.org/reference/user.html</a> Criando um novo Schema Crie  um novo usu&aacute;rio</li>Entre  com a senha</li>Escolha  os &ldquo;Table Spaces&rdquo; de dados e tempor&aacute;rio. Se necess&aacute;rio crie antes duas Tables Spaces em separado.</li>O  usu&aacute;rio deve possuir dois Rolles chamados &ldquo;Connect&rdquo; e &ldquo;Resource&rdquo;.</li>O  usu&aacute;rio deve possuir o direito (rights) de &ldquo;Unlimited Tablespace&rdquo;</li>Pronto agora pode-se conectar com este usu&aacute;rio e criar qualquer objeto, da&iacute; o schema ir&aacute; aparecer no &ldquo;Oracle Enterprise Manager&rdquo;.</li></ul> Sequences Para  usar uma sequence numa SQL-Statement use o comando : &lt;nome da  seq&uuml;&ecirc;ncia&gt;.NEXTVAL</li></ul> Deletar todos os dados de  uma tabela <li>Para  isso utilize o comando TRUNCATE &lt;nome da tabela&gt; ao inv&eacute;s de &ldquo;Delete *  From &lt;nome da tabela&gt;.</li></ul> Conversoes <ul><li>Numero: TO_NUMBER (&lt;texto&gt;,  [&lt;formato&gt;], [&lt;nlsparam&gt;])</li><li>Texto: TO_CHAR ou TO_NCHAR (&lt;data&gt; | &lt;numero&gt;, [&lt;formato&gt;],  [&lt;nlsparam&gt;])</li><li>Data:  TO_DATE ((&lt;texto&gt;, [&lt;formato&gt;], [&lt;nlsparam&gt;]). Exemplo: TO_DATE (&lsquo;10031990&rsquo;, &lsquo;DDMMYYYY&rsquo;)</li><li> </li></ul> Manipulacao de Datas <ul><li>Extraindo  valores:  EXTRACT ( &lt;objecto&gt;   FROM &lt;datetime&gt; )<ul><li>Objeto  pode ser : Year, Month, Day, Hour, Minute, Second, Timezone_Hour, Timezone_Minute,  Timezone_Region ou Timezone_ABBR)</li></ul></li><li>Adicionando  meses: Add_Months (&lt;data&gt;,  &lt;meses&gt;)</li><li>Data  corrente: Current_Date </li><li>Data  e hora corrente: Current_Timestamp </li><li>Ultimo  dia: LAST_DAY (&lt;data&gt;)</li><li>Meses  entre duas datas: MONTHS_BETWEEN (&lt;data1&gt;, &lt;data2&gt;)</li><li>Data  e hora no servidor : SYSDATE </li><li> </li></ul> Configurando  Oracle Forms <ul><li>No windows registry podemos alterar onde as  bibliotecas (PLL) estarao armazenadas. A chave se chama ORA9_PATH.</li></ul> <ul><li>O arquivo formsweb.cfg &eacute; importante para configurar  tamanho da janela, porta e outras coisas.</li></ul>   Inicializando  Oracle Forms <ul><li>Depois de instalado, crie um atalho no desktop ou outro local e clique nas propriedades deste icone. Para facilitar o login de entrada digite o seguinte :</li></ul> D:\OraHome\bin\ifbld90.exe userid=cwk/cwk@caserep No campo &bdquo;Executar em&ldquo; digite  o caminho do local de trabalho onde estao os Forms. Ex. : F:\Projekte\Benutzerverwaltung\Forms  DDL  - Data Definition Language DML - Data Manipulation Language PL/SQL  Strings <ul><li>Utilize o simbolo || para realizar concatencao de  strings</li><li>Utilize aspa simples para strings. Ex.: 'Testing... ' || 'concatenacao'</li><li>Utilize dois travessoes para comnetarios  --</li><li>O comando TO_CHAR  &eacute; muito usado para converter  numeros para strings.</li></ul> Oracle  Forms 9i  Utilizacao de Vari&aacute;veis Escopo:  Tem um texto muito bom sobre a escolha do escopo de variaveis em Forms: No Help On-Line do Form procure por : A Comparison of Global, Parameters, and Package Variables  Arrays:   TYPE ARRAY_ID_TYPE  IS TABLE OF  NUMBER NOT NULL INDEX BY BINARY_INTEGER; TYPE ARRAY_NAME_TYPE IS TABLE OF  VARCHAR2(100) INDEX BY BINARY_INTEGER; Usando Sequence e Select Into:  v_nNextID NUMBER;       SELECT seq_adm_tree.NEXTVAL INTO   v_nNextID FROM   DUAL; FOR LOOP p&aacute;gs. 289-290 A sintaxe &eacute; a seguinte:  FOR &lt;nome da  variavel declarada automaticamente&gt; IN &lt;inicio&gt;..&lt;fim&gt; LOOP &lt;commands&gt; END LOOP; While p&aacute;gs. 289-290 A sintaxe &eacute; a seguinte:  WHILE  &lt;condicao&gt; LOOP &lt;commands&gt; END LOOP; CURSOR LOOP p&aacute;gs. 289-290 O registro presente na sintaxe &eacute; declarado implicitamente pelo Oracle como um registro do tipo &lt;cursor&gt;%ROWTYPE e deixa de existir depois do final do loop. Basta seguir o exemplo: DECLARE CURSOR C1     IS SELECT * FROM Funcionarios; VEZES        NUMBER := 0; MSG          VARCHAR (100); BEGIN FOR RC1 IN C1 LOOP VEZES := VEZES +1; END LOOP; MSG := &rsquo;VEZES = &rsquo; || VEZES; MESSAGE (MSG); END;    Tratamento de Erros p&aacute;gs. 202-301 O tratamento de erro fica geralmente  dentro de um bloco BEGIN – END. Portanto pode-se ter um bloco interno contendo um tratamento e outro externo contendo outros tratamentos. Deve-se proceder da seguinte maneira para capturar e tratar um erro: EXCEPTION WHEN NO_DATA_FOUND THEN &lt;codigo de tratamento&gt;; WHEN 40100 THEN &lt;codigo de tratamento&gt;; WHEN OTHERS THEN &lt;codigo de tratamento&gt;; Existem v&aacute;rias constantes de erros j&aacute; pr&eacute;-definidas. Veja a p&aacute;gina 294 e 295. Triggers <ul><li>Triggers que comecao com When indicam que o seu codigo ser&aacute; executado al&eacute;m dos comandos default utilizados por Forms.</li><li>Triggers que comecao com On indicam que o seu codigo substituir&aacute; os comandos default  utilizados por Forms.</li><li>Triggers que comecao com Pre indicam que o seu codigo ser&aacute; executado antes dos comandos  default utilizados por Forms.</li><li>Triggers que comecao com Post indicam que o seu codigo ser&aacute; executado depois dos comandos default  utilizados por Forms.</li><li>Triggers que comecao com Key indicam que o seu codigo substituir&aacute; os comandos default  utilizados por Forms associados a alguma tecla.</li></ul> Listbox <ul><li>A propriedade &bdquo;Initial Value&ldquo; &eacute; importante caso utilize-se uma sequence para gerar um ID para um campo primary key por exemplo. Deve escrever o seguinte neste campo :</li></ul> :SEQUENCE.NOME DA SUA SEQUENCE.NEXTVAL   Alerts (Messagebox) <ul><li>Para exibir uma mensagem na tela devemos proceder da  seguinte maneira:</li></ul> DECLARE v_button      NUMBER;  BEGIN  --  &auml;ndert den Text SET_ALERT_PROPERTY ('ALERT_STOP_YES_NO_CANCEL',                       alert_message_text,                       'M&ouml;chten  Sie das Passwort von ' ||  v_hochkomma ||                        :ADM_USER.USER_LASTNAME || ', ' ||                        :ADM_USER.USER_FIRSTNAME || v_hochkomma ||                       ' zur&uuml;cksetzen ?'  );  -- &auml;ndert den  Titel SET_ALERT_PROPERTY ('ALERT_STOP_YES_NO_CANCEL',                      TITLE,                      'Passwort zur&uuml;cksetzen' ); v_button := SHOW_ALERT ('ALERT_STOP_YES_NO_CANCEL');  -- YES  gedruckt IF v_button = alert_button1 THEN &lt;comandos&gt; END IF; END; Variaveis do Sistema <ul><li>O sistema oferece algumas variaveis sobre o atual  estado do registro (record), bloco, entre outros.</li></ul> Para verificar um estado escreva dois pontos + SYSTEM + ponto + MODE. Exemplo: :SYSTEM.MODE  SYSTEM.MODE : indica o modo  do atual Form. <ul><li>NORMAL                       :  modo normal, a consulta foi realizada</li><li>ENTER-QUERY             :  modo de consulta. O usuario entre dados para consultar.</li><li>QUERY                          :  modo de processamento de uma consulta.</li></ul> SYSTEM.RECORD_STATUS : indica o modo  do atual registro <ul><li>CHANGED                     :  registro alterado</li><li>INSERT                           :  o registro est&aacute; sendo alterado ou inserido, mas nao existe no</li></ul>   banco de dados. <ul><li>NEW                               :  indica que a validacao do registro &eacute; nova.</li><li>QUERY                           :  o status do registro indica que ele foi lido do banco de dados.</li></ul>

Ignoring accents
Use the following commands in order to ignore accents in search statements:

ALTER SESSION SET NLS_COMP=LINGUISTIC; ALTER SESSION SET NLS_SORT=GENERIC_BASELETTER;

Sure you can add this to the tnsnames.ora or as environment variable to the OS.

That means that the following sql statements will return the same result:

SELECT person_id, epi_id, first_name, last_name, acronym, room_number, extension FROM persons WHERE UPPER(first_name) LIKE '%ANTONIO%' SELECT person_id, epi_id, first_name, last_name, acronym, room_number, extension FROM persons WHERE UPPER(first_name) LIKE '%ANTÓNIO%'

Importing and Exporting
Exporting exp system/PASSWORD@XE file=E:\web\XE.dmp owner=celum

Importing imp system/PASSWORD@XE file=D:\temp\XE.dmp fromuser=celum touser=celum

Start/Stop Scripts
To stop the Oracle database Express Edition use the following script:

oradim -shutdown -sid XE >nul 2>&1 net stop OracleServiceXE lsnrctl stop

To start the Oracle database Express Edition use the following script:

lsnrctl start net start OracleServiceXE oradim -startup -sid XE >nul 2>&1