Oracle 9i curso_completo

  • 5,195 views
Uploaded on

Oracle 9i Curso Completo sem restrições e ainda comentários para quem realmente quer aprender.

Oracle 9i Curso Completo sem restrições e ainda comentários para quem realmente quer aprender.

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
5,195
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
297
Comments
1
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ®www.axcel.com.br ORACLE 9i PARA DESENVOLVEDORES ORACLE DEVELOPER 6i CURSO COMPLETO Lúcia Fernandes
  • 2. Pirataria é crime contra os direitos autorais, com penas para os infratores deacordo com a Lei 9.610 de 19 de fevereiro de 1998.Este e-book não pode ser vendido e/ou distribuído em CD-ROM, DVD-ROM ou por programas decompartilhamento P2P. A forma correta de obter este arquivo é adquirindo-o através dos sites da EditoraAxcel (www.axcel.com.br) e de Júlio Battisti (www.juliobattisti.com.br).Se você adquiriu este documento através dos meios legais descritos acima, não distribua ou venda esteproduto. Você estará cometendo um crime contra o autor da obra.Se você adquiriu este e-book por intermédio de terceiros, regularize sua situação entrando em contato pelo e-maileditora@axcel.com.br, para que não seja alvo das penalizações previstas em Lei. Usar cópia ilegal também écrime de violação dos direitos autorais.REPRODUÇÃO PROIBIDA PELA LEI DO DIREITO AUTORAL.
  • 3. Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 4. SUMÁRIOCRÉDITOS PRODUÇÃO Alexandre Ramires Carlos Alberto Sá Ferreira REVISÃO Sandro Gomes dos Santos ARTE E DIAGRAMAÇÃO Ingo Bertelli SUPERVISOR DE PRODUÇÃO Carlos Alberto Sá Ferreira CAPA Ingo Bertelli EDITORA DE PRODUÇÃO Gisella Narcisi EDITOR RESPONSÁVEL Ricardo Reinprecht CURSO COMPLETO00✦ III Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 5. ORACLE 9I PARA DESENVOLVEDORES CURSO COMPLETODEDICATÓRIAÀ minha família, que me acompanha a cada dia, no desenvolvimento deste trabalho, e me encoraja a prosseguir,principalmente nos momentos de desânimo. Dedico este livro, portanto, aos meus filhos Davi, Daniel e Gabriel,ao meu esposo Dilson e aos meus pais Lourdes e Milton (em memória). E, também, a uma amiga muito especial,que foi uma grande admiradora do meu trabalho, Lucianita (em memória).AGRADECIMENTOSA todos os que me apoiaram antes e durante o desenvolvimento deste trabalho.A todo o pessoal da Axcel Books, especialmente a Alexandre Ramires, Romero Portela Rodrigues e Ricardo Reinprecht.Ao amigo Max Guyer, por mais uma vez realizar a revisão do conteúdo técnico de todo o material.SOBRE A AUTORALúcia Fernandes é arquiteta formada pela Universidade Federal do Rio de Janeiro. Na área de informática, suaatuação foi toda voltada para a área de suporte, especialmente banco de dados. Ministrou diversos treinamentosassociados a bancos de dados e linguagens de programação, principalmente relacionados com o ambiente Oracle.Atualmente é Diretora de Suporte e Tecnologia da Relacional Consultoria e Sistemas Ltda.IV ✦00CURSO COMPLETO Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 6. SUMÁRIOPREFÁCIOEste material foi construído para o desenvolvedor Oracle, ou seja, aquele profissional que deseja se tornar (ou já é)desenvolvedor de sistemas no ambiente Oracle.O livro foi dividido em três partes:♦ Fundamentos – onde encontramos a parte básica, a interface com o banco de dados através das linguagens SQL e PL/SQL.♦ Developer – onde encontramos o estudo das ferramentas de desenvolvimento de sistemas Form Builder e Re- port Builder.♦ Referência – onde encontramos a sintaxe das linguagens estudadas na parte Fundamentos e lista de propriedades, de menus, de triggers, de rotinas, de parâmetros, etc. das ferramentas estudadas na parte Developer.Este livro segue a mesma linha do anterior em que, inicialmente, estudamos a linguagem SQL em seguida passandoao desenvolvimento de lógicas de programação com o PL/SQL. Consideramos que o estudo sobre objetos nobanco de dados merecia uma atenção maior, e por este motivo dedicamos o Capítulo 4 ao estudo de objetos tantoem SQL quanto em PL/SQL.Assim, se você não conhece Oracle (é o seu primeiro contato), deve começar o estudo no Capítulo 2 com a linguagemSQL, passando então para o Capítulo 3, que contém a linguagem PL/SQL (para construção de aplicações em batch).De posse desse conhecimento, você poderá avaliar o que a versão 9i trouxe de novidades para o desenvolvedor.Se, por outro lado, você já conhece Oracle 8i, não deixe de estudar os Capítulos 2 e 3, pois você perceberá quemuitas implementações foram feitas no SQL. A quantidade de funções cresceu tremendamente, a sintaxe doscomandos de DML ganhou acréscimos para aceitar o padrão ANSI. A PL/SQL também ganhou novos pacotes eimplementou todas as alterações realizadas para o SQL.A parte (tanto da SQL quanto da PL/SQL) relativa a uso de objetos no banco de dados também foi incrementadacom o conceito de herança e polimorfismo. No Capítulo 4 fazemos um estudo específico sobre objetos, tanto doponto de vista conceitual quanto do uso no ORACLE.No Capítulo 5 o desenvolvedor encontrará alguns tópicos gerais relativos ao banco de dados, que podem ser úteisno emprego mais eficiente no software; muitas vezes, porém, não diretamente ligados ao seu dia-a-dia, por exemplo,particionamento de tabelas, views materializadas, performance do SQL, dentre outros.A parte Fundamentos conta com um conjunto de aproximadamente 250 exercícios e mais de 600 exemplos.Certamente você encontrará muita coisa interessante para estudar, independente do seu nível de conhecimentoatual. Na parte Referência, você encontrará a sintaxe de SQL9i, de PL/SQL9i além da sintaxe de SQL*Plus.Para facilitar o estudo daqueles que já conhecem o Oracle8i criamos um índice exclusivo com as novidades. Nesteíndice incluiremos, apenas, aqueles tópicos que sofreram modificações na versão 9i ou que ainda não havíamosestudado no livro anterior.Se você pretende se utilizar das ferramentas de desenvolvimento da Oracle, seu estudo ainda não acabou: devemospassar à segunda parte (Developer), onde estão os capítulos referentes às ferramentas de desenvolvimento.Iniciamos o estudo das ferramentas com a instalação, no Capítulo 6, e passamos então ao Form Builder 6i (Capítulo7) e Report Builder 6i (Capítulo 8). O Capítulo 9 é dedicado ao estudo das ferramentas em ambiente Web.Se você não conhece as ferramentas de desenvolvimento da Oracle, seu estudo começa no Capítulo 7, onde vocêconhecerá a filosofia da ferramenta (Form Builder), sua utilização passo a passo e dicas diversas. Em seguida, vocêdeve passar ao Capítulo 8, para que possamos estudar juntos a confecção de relatórios com a ferramenta ReportBuilder. Quando você estiver bem experiente nas duas ferramentas, passe ao Capítulo 9 e verifique como utilizar omesmo programa que você desenvolveu para ambiente cliente-servidor na Web (Internet ou Intranet). CURSO COMPLETO00✦ V Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 7. ORACLE 9I PARA DESENVOLVEDORES CURSO COMPLETOSe você já conhece as ferramentas em versões anteriores, o estudo dos Capítulos 7 e 8 terá o objetivo de verificar oque houve de implementação na versão 6i. Não deixe, no entanto, de ler esses capítulos, pois, além das modificações,você encontrará dicas úteis ao longo do texto. No Capítulo 9, você já sabe, encontrará um estudo passo-a-passopara a implementação das aplicações em ambiente Web.A parte Developer conta com um conjunto de aproximadamente 120 exercícios e 200 figuras e 90 listagens comexemplos. Na parte Referência, você encontrará as propriedades dos objetos do Form e do Report, os menus, asvariáveis de sistema, os parâmetros de execução, os triggers e as rotinas dos pacotes internos. Enfim, muita informaçãopara o seu estudo.Quanto ao desenvolvimento do material, utilizamos a seguinte regra geral: os assuntos são apresentados com umaparte teórica seguida de exemplos que permitam o entendimento prático. Ao final do tópico propomos algunsexercícios para fixação do assunto. Todos os exercícios estão resolvidos ao final de cada capítulo, para que vocêpossa comparar o seu resultado com uma solução.O material segue uma ordem crescente de dificuldade, isto é, minha expectativa é de que você siga o estudo naordem proposta, pois o tópico seguinte pressupõe o conhecimento do anterior.Em relação à convenção sintática apresentada neste livro, utilizamos, basicamente, a mesma encontrada nos manuaisda Oracle.De acordo com essas convenções, as informações entre colchetes – [ ] – são opcionais e as informações entre ossímbolos < e > indicam valores a serem substituídos. Por exemplo, Round (<n> [ , <m>]) indica que a função Roundaceita um ou dois parâmetros e que n deve ser substituído pelo valor que desejamos arredondar. Nesse caso,teríamos opcionalmente Round (1234.87) ou Round (1234.87, 1).As sintaxes alternativas e/ou as repetitivas são representadas por linhas e pontes como na figura-exemplo a seguir.Figura – Exemplo de sintaxeDentro de cada capítulo veremos trechos das sintaxes, pois estaremos analisando individualmente os assuntos;porém, na parte de anexos, teremos a sintaxe completa com a explicação específica sobre cada opção.Como recomendação ao leitor interessado em se tornar um desenvolvedor, sugiro que não se atenha apenas à leiturado material. Praticar traz dúvidas que a leitura não traz; portanto refaça todos os testes apresentados, faça outrostestes complementares com opções não exemplificadas e tente realizar todos os exercícios de fixação. Duvide e teste!Dessa forma, você terá condições de tirar suas próprias conclusões sobre as ferramentas apresentadas. Se, após esteestudo, você tiver dúvidas, escreva para o e-mail da Editora, a fim de entrar em contato comigo para novas explicações.Não deixe, também, de obter todos os scripts e aplicativos presentes no livro para que seu estudo seja mais ágil.Faça download em www.axcel.com.br.Bom estudo!Lúcia.VI ✦00CURSO COMPLETO Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 8. SUMÁRIO SumárioPARTE I – FUNDAMENTOS ................................................................................................................................ 1CAPÍTULO 1 – INSTALANDO O PERSONAL ORACLE9I NO WINDOWS2000 .................................................................. 3Fundamentos em: Instalação do Produto ............................................................................................ 4 Requerimentos Para Instalação ............................................................................................................................ 4 Acompanhando a Instalação ............................................................................................................................... 4 Localização dos Arquivos ..................................................................................................................................... 5 Produtos Disponíveis ........................................................................................................................................... 5 Tipos de Instalação ............................................................................................................................................... 6 Configuração do Banco de Dados ........................................................................................................................ 7 Identificação do Banco de Dados ......................................................................................................................... 7 Local do Arquivo do Banco de Dados .................................................................................................................. 8 Conjunto de Caracteres de Banco de Dados ........................................................................................................ 8 Resumo ................................................................................................................................................................. 9Fundamentos em: Substituição da Linguagem .................................................................................. 10 Executando o Regedit ......................................................................................................................................... 10 O Nó Oracle ........................................................................................................................................................ 10Fundamentos em: Criação de um Usuário-Padrão com o SQL*Plus ................................................. 12Fundamentos em: Criação da Base Relacional ................................................................................... 13 Modelo de Dados ............................................................................................................................................... 13 Gerando a Base de Dados ................................................................................................................................... 14 Criando o Atalho Para o SQL*Plus ..................................................................................................................... 20 Sobre a Base de Dados Objeto-Relacional .......................................................................................................... 20CAPÍTULO 2 – SQL E SQL*PLUS ................................................................................................................... 21Fundamentos em: Linguagem SQL ...................................................................................................... 22 Dados Históricos ................................................................................................................................................ 22 O Oracle e o SQL ................................................................................................................................................ 22 Banco de Dados Relacional ................................................................................................................................ 22 A Abrangência da Linguagem ............................................................................................................................ 23 Linguagem de Manipulação dos Dados (Data Manipulation Language – DML) .......................................... 23 Linguagem de Definição dos Dados (Data Definition Language – DDL) ...................................................... 23 Linguagem de Controle dos Dados (Data Control Language – DCL) ........................................................... 23Fundamentos em: Ferramenta SQL*Plus ............................................................................................ 24 Abrindo uma Sessão ........................................................................................................................................... 24 O SQL Buffer ....................................................................................................................................................... 24 Os Comandos do SQL*Plus ................................................................................................................................ 25 Digitando no SQL*Plus ...................................................................................................................................... 25 Comandos de Edição .......................................................................................................................................... 26 List .................................................................................................................................................................. 26 Append ........................................................................................................................................................... 27 Change ........................................................................................................................................................... 27 Del .................................................................................................................................................................. 28 Input .............................................................................................................................................................. 29 Edit ................................................................................................................................................................. 29 Comandos de Execução e de Encerramento ...................................................................................................... 31 Run ................................................................................................................................................................. 31 / (Barra) .......................................................................................................................................................... 32 Exit / Quit ...................................................................................................................................................... 32 CURSO COMPLETO00✦ VII Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 9. ORACLE 9I PARA DESENVOLVEDORES CURSO COMPLETO Describe .......................................................................................................................................................... 33 Comandos Para Tratamento de Arquivos .......................................................................................................... 34 Save ................................................................................................................................................................ 34 Get .................................................................................................................................................................. 34 Start ................................................................................................................................................................ 35Fundamentos em: Consulta à Base de Dados ..................................................................................... 37 Introdução .......................................................................................................................................................... 37 Forma Básica do Comando SELECT ................................................................................................................... 37 Restringindo a Consulta ..................................................................................................................................... 38 O Uso de All Versus Distinct ou Unique ............................................................................................................ 38 Operadores de Comparação ............................................................................................................................... 39 Usando And e Or ................................................................................................................................................ 39 Mudando a Precedência das Operações ............................................................................................................. 39 Operadores Aritméticos e de Concatenação ...................................................................................................... 40 Selecionando um Intervalo de Valores – Between ............................................................................................. 40 Selecionando uma Lista de Valores – In ............................................................................................................. 41 Pesquisando o Conteúdo de um Texto – Like .................................................................................................... 41 Pesquisando um Valor Desconhecido – Is Null ................................................................................................. 42 Consultando Dados de uma Tabela Particionada .............................................................................................. 42 Exercícios ............................................................................................................................................................ 43Fundamentos em: Atualização da Base de Dados .............................................................................. 43 Incluindo Novas Linhas – Insert Básico ............................................................................................................. 44 Retornando Informações dos Dados Incluídos .................................................................................................. 46 Alterando Linhas Existentes – Update Básico .................................................................................................... 46 Retornando Informações dos Dados Alterados .................................................................................................. 48 Excluindo Linhas da Base de Dados – Delete Básico ......................................................................................... 48 Retornando Informações dos Dados Excluídos ................................................................................................. 49 Exercícios ............................................................................................................................................................ 49Fundamentos em: Ordenação e Subconsulta ..................................................................................... 50 Usando Apelidos ................................................................................................................................................ 50 Obtendo os Resultados em uma Ordem Específica ........................................................................................... 51 Usando Subquery Para Restringir o Resultado ................................................................................................... 52 Exercícios ............................................................................................................................................................ 53Fundamentos em: Grupamentos ......................................................................................................... 53 Funções de Grupo ou de Agregação ................................................................................................................... 54 Avg ................................................................................................................................................................. 55 Corr ................................................................................................................................................................ 55 Count ............................................................................................................................................................. 56 Covar_Pop ...................................................................................................................................................... 56 Covar_Samp ................................................................................................................................................... 56 Cume_Dist ..................................................................................................................................................... 57 Dense_Rank ................................................................................................................................................... 57 First ................................................................................................................................................................ 57 Group_Id ........................................................................................................................................................ 58 Grouping ........................................................................................................................................................ 58 Grouping_id ................................................................................................................................................... 58 Last ................................................................................................................................................................. 58 Max ................................................................................................................................................................ 58 Min ................................................................................................................................................................. 58 Percent_Rank ................................................................................................................................................. 58 Percentile_Cont ............................................................................................................................................. 59 Percentile_Disc ............................................................................................................................................... 60 Rank ............................................................................................................................................................... 60VIII ✦00CURSO COMPLETO Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 10. SUMÁRIO Regr_Avgx ...................................................................................................................................................... 61 Regr_Avgy ...................................................................................................................................................... 61 Regr_Count .................................................................................................................................................... 61 Regr_Intercept ................................................................................................................................................ 61 Regr_R2 .......................................................................................................................................................... 61 Regr_Slope ...................................................................................................................................................... 61 Regr_Sxx ......................................................................................................................................................... 61 Regr_Sxy ......................................................................................................................................................... 61 Regr_Syy ......................................................................................................................................................... 61 Stddev ............................................................................................................................................................ 62 Stddev_Pop .................................................................................................................................................... 62 Stddev_Samp .................................................................................................................................................. 62 Sum ................................................................................................................................................................ 62 Var_Pop .......................................................................................................................................................... 62 Var_Samp ....................................................................................................................................................... 62 Variance ......................................................................................................................................................... 63 Grupando as Linhas Selecionadas ...................................................................................................................... 63 Regra .............................................................................................................................................................. 64 A Cláusula Having .............................................................................................................................................. 64 As Expressões Rollup e Cube .............................................................................................................................. 65 Rollup ............................................................................................................................................................. 65 Cube ............................................................................................................................................................... 66 Identificando as Linhas com as Funções Group ............................................................................................ 67 Exercícios ............................................................................................................................................................ 68Fundamentos em: Modificação do Resultado com Funções ............................................................. 69 Introdução .......................................................................................................................................................... 69 Numéricas Simples ............................................................................................................................................. 70 Abs ................................................................................................................................................................. 70 Bitand ............................................................................................................................................................. 70 Ceil ................................................................................................................................................................. 70 Exp ................................................................................................................................................................. 71 Floor ............................................................................................................................................................... 71 Ln ................................................................................................................................................................... 71 Log ................................................................................................................................................................. 71 Mod ................................................................................................................................................................ 71 Power ............................................................................................................................................................. 71 Round ............................................................................................................................................................. 72 Sign ................................................................................................................................................................ 72 Sqrt ................................................................................................................................................................. 72 Trunc .............................................................................................................................................................. 72 Width_Bucket ................................................................................................................................................ 72 Trigonométricas ................................................................................................................................................. 73 Acos ................................................................................................................................................................ 73 Asin ................................................................................................................................................................ 74 Atan ................................................................................................................................................................ 74 Atan2 .............................................................................................................................................................. 74 Cos ................................................................................................................................................................. 74 Cosh ............................................................................................................................................................... 74 Sin .................................................................................................................................................................. 75 Sinh ................................................................................................................................................................ 75 Tan ................................................................................................................................................................. 75 Tanh ............................................................................................................................................................... 75 Alfanuméricas ..................................................................................................................................................... 75 CURSO COMPLETO00✦ IX Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 11. ORACLE 9I PARA DESENVOLVEDORES CURSO COMPLETO Chr ................................................................................................................................................................. 75 Concat ............................................................................................................................................................ 76 Initcap ............................................................................................................................................................ 76 Lower ............................................................................................................................................................. 77 Lpad ............................................................................................................................................................... 77 Ltrim .............................................................................................................................................................. 77 Nls_Initcap ..................................................................................................................................................... 77 Nls_Lower ...................................................................................................................................................... 77 Nls_Upper ...................................................................................................................................................... 78 Nlssort ............................................................................................................................................................ 78 Replace ........................................................................................................................................................... 78 Rpad ............................................................................................................................................................... 78 Rtrim .............................................................................................................................................................. 78 Soundex ......................................................................................................................................................... 79 Substr ............................................................................................................................................................. 79 Substrb, Substrc, Substr2, Substr4 .................................................................................................................. 79 Translate ......................................................................................................................................................... 79 Treat ............................................................................................................................................................... 79 Trim ................................................................................................................................................................ 79 Upper ............................................................................................................................................................. 80 Alfanuméricas que Retornam Valores Numéricos ............................................................................................. 80 Ascii ................................................................................................................................................................ 81 Instr ................................................................................................................................................................ 81 Instrb, Instrc, Instr2, Instr4 ........................................................................................................................... 81 Length ............................................................................................................................................................ 82 Lengthb, Lengthc, Length2, Length4 ............................................................................................................ 82 Datas ................................................................................................................................................................... 82 Sysdate ........................................................................................................................................................... 82 Add_Months .................................................................................................................................................. 82 Current_Date ................................................................................................................................................. 83 Sessiontimezone ............................................................................................................................................ 83 Current_Timestamp ....................................................................................................................................... 84 Dbtimezone ................................................................................................................................................... 84 Extract ............................................................................................................................................................ 84 From_Tz ......................................................................................................................................................... 84 LocalTimestamp ............................................................................................................................................. 84 Last_Day ......................................................................................................................................................... 85 Months_Between ........................................................................................................................................... 85 New_Time ...................................................................................................................................................... 85 Next_Day ....................................................................................................................................................... 86 Round ............................................................................................................................................................. 86 Sys_Extract_UTC ............................................................................................................................................ 86 SysTimestamp ................................................................................................................................................ 86 Trunc .............................................................................................................................................................. 87 Tz_Offset ........................................................................................................................................................ 87 Conversão ........................................................................................................................................................... 87 AsciiStr ........................................................................................................................................................... 89 Bin_To_Num .................................................................................................................................................. 89 Cast ................................................................................................................................................................ 89 CharToRowid ................................................................................................................................................. 89 Compose ........................................................................................................................................................ 89 Convert .......................................................................................................................................................... 89 Decompose .................................................................................................................................................... 90 HexToRaw ...................................................................................................................................................... 90X ✦00CURSO COMPLETO Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 12. SUMÁRIO Numtodsinterval ............................................................................................................................................ 90 Numtoyminterval .......................................................................................................................................... 90 RawToHex, RawToNhex ................................................................................................................................. 90 RowidToChar, RowidToNchar ....................................................................................................................... 91 To_Char .......................................................................................................................................................... 91 To_Char .......................................................................................................................................................... 91 To_Clob .......................................................................................................................................................... 92 To_Date .......................................................................................................................................................... 92 To_Dsinterval ................................................................................................................................................. 94 To_Lob ............................................................................................................................................................ 94 To_Multi_Byte ................................................................................................................................................ 95 To_Nchar ........................................................................................................................................................ 95 To_Nchar ........................................................................................................................................................ 95 To_Nchar ........................................................................................................................................................ 95 To_Nclob ........................................................................................................................................................ 95 To_Number .................................................................................................................................................... 95 To_Single_Byte ............................................................................................................................................... 96 To_Timestamp ................................................................................................................................................ 96 To_Timestamp_TZ .......................................................................................................................................... 96 To_Yminterval ................................................................................................................................................ 96 Translate Using .............................................................................................................................................. 96 Unistr ............................................................................................................................................................. 96 Outras ................................................................................................................................................................. 96 Bfilename ....................................................................................................................................................... 96 Coalesce ......................................................................................................................................................... 97 Decode ........................................................................................................................................................... 97 Dump ............................................................................................................................................................. 97 Empty_Blob ou Empty_Clob ......................................................................................................................... 98 ExistsNode ..................................................................................................................................................... 98 Extract ............................................................................................................................................................ 99 Greatest .......................................................................................................................................................... 99 Least ............................................................................................................................................................... 99 Nls_Charset _Decl_Len .................................................................................................................................. 99 Nls_Charset _Id ............................................................................................................................................ 100 Nls_Charset _Name ...................................................................................................................................... 100 NullIf ............................................................................................................................................................ 100 Nvl ................................................................................................................................................................ 100 Nvl2 .............................................................................................................................................................. 100 Sys_Connect_By_Path .................................................................................................................................. 100 Sys_Context ................................................................................................................................................. 101 Sys_DbUriGen .............................................................................................................................................. 102 Sys_Guid ...................................................................................................................................................... 102 Sys_Typeid .................................................................................................................................................... 102 Sys_XmlGen ................................................................................................................................................. 102 Sys_XmlAgg ................................................................................................................................................. 103 Uid ............................................................................................................................................................... 103 User .............................................................................................................................................................. 103 Userenv ........................................................................................................................................................ 103 Vsize ............................................................................................................................................................. 103 Exercícios .......................................................................................................................................................... 104Fundamentos em: Funções Analíticas ............................................................................................... 104 Introdução ........................................................................................................................................................ 105 Funções Somente Analíticas ............................................................................................................................. 105 CURSO COMPLETO00✦ XI Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 13. ORACLE 9I PARA DESENVOLVEDORES CURSO COMPLETO First_Value .................................................................................................................................................... 107 Lag ................................................................................................................................................................ 107 Last_Value .................................................................................................................................................... 108 Lead .............................................................................................................................................................. 108 Ntile ............................................................................................................................................................. 109 Ratio_to_Report ........................................................................................................................................... 109 Row_Number ............................................................................................................................................... 110 Funções de Agregação com uso Analítico ........................................................................................................ 110 Exercícios .......................................................................................................................................................... 113Fundamentos em: Revisão das Operações Relacionais .................................................................... 113 Introdução ........................................................................................................................................................ 113 Seleção ou Restrição ......................................................................................................................................... 113 Projeção ............................................................................................................................................................ 114 União ................................................................................................................................................................ 114 Interseção ......................................................................................................................................................... 116 Diferença .......................................................................................................................................................... 116 Produto Cartesiano .......................................................................................................................................... 117 Junção ou Join .................................................................................................................................................. 117 Divisão .............................................................................................................................................................. 119 Exercícios .......................................................................................................................................................... 120Fundamentos em: Detalhamento do SQL*Plus ................................................................................ 120 Comandos de Formatação ............................................................................................................................... 120 Column ........................................................................................................................................................ 120 RepHeader / RepFooter ................................................................................................................................ 123 Ttitle / Btitle ................................................................................................................................................. 124 Break ............................................................................................................................................................ 125 Compute ...................................................................................................................................................... 127 Clear ............................................................................................................................................................. 128 Spool ............................................................................................................................................................ 129 Show ............................................................................................................................................................ 130 Comandos Para Controle de Variáveis de Usuário .......................................................................................... 131 Define ........................................................................................................................................................... 131 Undefine ...................................................................................................................................................... 131 Variable ........................................................................................................................................................ 132 Print ............................................................................................................................................................. 133 Comandos Para Comunicação com o Usuário ................................................................................................ 133 Accept .......................................................................................................................................................... 133 Prompt ......................................................................................................................................................... 133 Pause ............................................................................................................................................................ 134 Modificando Variáveis de Sistema ................................................................................................................... 134 Set ................................................................................................................................................................. 134 Store ............................................................................................................................................................. 139 Comandos Diversos ......................................................................................................................................... 139 Connect / Disconnect .................................................................................................................................. 139 Password, Execute, Host e Remark .............................................................................................................. 140 Copy ............................................................................................................................................................. 140 Timing .......................................................................................................................................................... 140 Whenever Oserror / Sqlerror ....................................................................................................................... 140 Attribute ....................................................................................................................................................... 141 Help .............................................................................................................................................................. 141 Acionando o SQL*Plus em Batch ..................................................................................................................... 141 O Menu do SQL*Plus ........................................................................................................................................ 143 Arquivo ........................................................................................................................................................ 143XII ✦00CURSO COMPLETO Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 14. SUMÁRIO Editar ............................................................................................................................................................ 143 Procurar ........................................................................................................................................................ 143 Opções ......................................................................................................................................................... 143 Ajuda ............................................................................................................................................................ 143 Exercícios .......................................................................................................................................................... 143Fundamentos em: Consultas Complexas .......................................................................................... 145 Outer Join ......................................................................................................................................................... 145 Exists ................................................................................................................................................................. 147 Hierarquia ......................................................................................................................................................... 147 Subselects Correlacionados .............................................................................................................................. 150 Views Relacionais ............................................................................................................................................. 151 Uso de Subquery na Cláusula From ................................................................................................................. 153 Em Selects .................................................................................................................................................... 153 Em Updates .................................................................................................................................................. 154 Em Inserts .................................................................................................................................................... 155 Em Deletes ................................................................................................................................................... 155 O Comando Merge ........................................................................................................................................... 155 Inclusão Simultânea em Diversas Tabelas ........................................................................................................ 156 Usos Incomuns do Comando Select ................................................................................................................ 157 Uso de Case no Select ....................................................................................................................................... 158 Exercícios .......................................................................................................................................................... 158Fundamentos em: O Dicionário de Dados do Oracle ....................................................................... 159 Introdução ........................................................................................................................................................ 159 User_Objects ..................................................................................................................................................... 160 User_Tables ....................................................................................................................................................... 161 User_Tab_Columns .......................................................................................................................................... 161 User_Tab_Partitions .......................................................................................................................................... 162 User_Indexes .................................................................................................................................................... 162 User_Ind_Columns ........................................................................................................................................... 163 User_Ind_Partitions .......................................................................................................................................... 163 User_Constraints .............................................................................................................................................. 164 User_Cons_Columns ........................................................................................................................................ 164 User_Sequences ................................................................................................................................................ 164 User_Synonyms ................................................................................................................................................ 164 User_Users ........................................................................................................................................................ 165 User_Views ....................................................................................................................................................... 165 User_Updatable_Columns ................................................................................................................................ 165 User_Types ........................................................................................................................................................ 166 User_Type_Attrs ................................................................................................................................................ 166 User_Type_Methods ......................................................................................................................................... 166 User_Nested_Tables .......................................................................................................................................... 167 User_Object_Tables .......................................................................................................................................... 167 User_Lobs ......................................................................................................................................................... 167 User_Method_Params ....................................................................................................................................... 168 User_Method_Results ....................................................................................................................................... 168 Exercícios .......................................................................................................................................................... 168Fundamentos em: Uso da Data Control Language .......................................................................... 168 Comandos Para Controle da Transação ........................................................................................................... 169 Transaction .................................................................................................................................................. 169 Commit ........................................................................................................................................................ 169 Savepoint ..................................................................................................................................................... 172 Rollback ....................................................................................................................................................... 173 Read Consistency ......................................................................................................................................... 173 CURSO COMPLETO00✦ XIII Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 15. ORACLE 9I PARA DESENVOLVEDORES CURSO COMPLETO O Segmento de Rollback .............................................................................................................................. 175 Set Transaction Read Only ........................................................................................................................... 176 Select For Update ......................................................................................................................................... 177 DeadLocks .................................................................................................................................................... 179 Set Constraint .............................................................................................................................................. 179 Comandos Para Controle da Sessão ................................................................................................................. 181 Alter Session ................................................................................................................................................. 181 Set Role ......................................................................................................................................................... 183 Globalization Support ...................................................................................................................................... 184 Características da Globalization Support .................................................................................................... 184 Esquema de Codificação .............................................................................................................................. 185 Unicode ........................................................................................................................................................ 185 Os Characters Sets do Oracle ....................................................................................................................... 185 Definindo os Parâmetros da Globalization Support .................................................................................... 185 Alter Session ................................................................................................................................................. 186 Variáveis de Ambiente ................................................................................................................................. 193 Os Parâmetros NLS em Uso nas Funções SQL ............................................................................................. 195 Exercícios .......................................................................................................................................................... 195Fundamentos em: Index Tables e Large Objects .............................................................................. 196 Index Tables ..................................................................................................................................................... 196 Rowid Lógico ............................................................................................................................................... 197 Comparação Entre Rowids Lógicos e Físicos ............................................................................................... 197 Comparando Index Table e Regular Table ................................................................................................... 197 Benefícios de uma Index-Organized Table .................................................................................................. 198 Large Objects .................................................................................................................................................... 198 Tipos de Lobs .................................................................................................................................................... 199 Locator .............................................................................................................................................................. 199 Lob Index ......................................................................................................................................................... 199 Comparação Entre Lob e Longs ....................................................................................................................... 200 Características das Colunas Long e Long Raw ............................................................................................ 200 Características das Colunas Lob .................................................................................................................. 200 Manipulação das Colunas Lob em SQL ........................................................................................................... 200 Inclusão ........................................................................................................................................................ 200 Alteração ...................................................................................................................................................... 201 Consultas ..................................................................................................................................................... 202 Exercícios .......................................................................................................................................................... 202Fundamentos em: Administração do Banco de Dados .................................................................... 202 Introdução ........................................................................................................................................................ 202 Schema ............................................................................................................................................................. 203 Data Definition Language ................................................................................................................................ 203 Armazenamento ............................................................................................................................................... 204 Tablespace .................................................................................................................................................... 205 Bloco Oracle ................................................................................................................................................. 205 Segmentos .................................................................................................................................................... 206 Extensão ....................................................................................................................................................... 206 Create Table ...................................................................................................................................................... 206 Tipos de Dados ............................................................................................................................................. 207 Constraints .................................................................................................................................................. 209 Create Type ....................................................................................................................................................... 209 Create Index ..................................................................................................................................................... 210 Create Database Link ....................................................................................................................................... 210 Create Synonym ............................................................................................................................................... 210 Create Sequence ............................................................................................................................................... 211XIV ✦00CURSO COMPLETO Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 16. SUMÁRIO Create Role ....................................................................................................................................................... 212 Create Directory ............................................................................................................................................... 213 Create View ...................................................................................................................................................... 214 Create User ....................................................................................................................................................... 214 Alter <objeto> ................................................................................................................................................... 214 Drop <objeto> .................................................................................................................................................. 215 Truncate Table .................................................................................................................................................. 215 Rename ............................................................................................................................................................. 216 Grant ................................................................................................................................................................ 216 Grant Para os <objetos> ............................................................................................................................... 216 Grant <privilégios de sistema> .................................................................................................................... 217 Revoke .............................................................................................................................................................. 218 Revoke Para os <objetos> ............................................................................................................................. 218 Revoke <privilégios de sistema> .................................................................................................................. 219 Exercícios .......................................................................................................................................................... 219 Resolução dos Exercícios Propostos ................................................................................................................. 220CAPÍTULO 3 – PL/SQL ............................................................................................................................. 249Fundamentos em: Linguagem de Programação .............................................................................. 250 Introdução ........................................................................................................................................................ 250 Estrutura ........................................................................................................................................................... 250 Modularidade ................................................................................................................................................... 250 Arquitetura ....................................................................................................................................................... 251 Vantagens da PL/SQL ....................................................................................................................................... 251 Suporte Para SQL ......................................................................................................................................... 251 Suporte Para Programação Orientada a Objeto ........................................................................................... 251 Performance ................................................................................................................................................. 251 Portabilidade ................................................................................................................................................ 251 Produtividade ............................................................................................................................................... 252 Integração com o Oracle .............................................................................................................................. 252Fundamentos em: Características da Linguagem ............................................................................ 252 Identificadores .................................................................................................................................................. 252 Palavras Reservadas .......................................................................................................................................... 253 Literais .............................................................................................................................................................. 253 Número ........................................................................................................................................................ 254 Caracter ........................................................................................................................................................ 254 String ............................................................................................................................................................ 254 Boleano ........................................................................................................................................................ 254 Comentários ..................................................................................................................................................... 254 Fim de Linha .................................................................................................................................................... 254Fundamentos em: Tipos de Dados ..................................................................................................... 255 Escalares ............................................................................................................................................................ 255 Binary_Integer .............................................................................................................................................. 255 Number ........................................................................................................................................................ 255 Pls_Integer .................................................................................................................................................... 257 Char ............................................................................................................................................................. 257 Varchar2 ....................................................................................................................................................... 258 Long ............................................................................................................................................................. 258 Raw ............................................................................................................................................................... 259 Long Raw ..................................................................................................................................................... 259 Rowid ........................................................................................................................................................... 259 Urowid ......................................................................................................................................................... 260 Nchar ........................................................................................................................................................... 260 Nvarchar2 .................................................................................................................................................... 260 CURSO COMPLETO00✦ XV Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 17. ORACLE 9I PARA DESENVOLVEDORES CURSO COMPLETO Boolean ........................................................................................................................................................ 260 Date .............................................................................................................................................................. 260 Timestamp ................................................................................................................................................... 261 Timestamp With Time Zone ........................................................................................................................ 261 Timestamp With Local Time Zone .............................................................................................................. 261 Interval Day to Second ................................................................................................................................ 261 Interval Year to Month ................................................................................................................................ 261 Lobs .................................................................................................................................................................. 262 Blob .............................................................................................................................................................. 262 Clob .............................................................................................................................................................. 262 Nclob ............................................................................................................................................................ 262 Bfile .............................................................................................................................................................. 263 Compostos ....................................................................................................................................................... 263 Reference .......................................................................................................................................................... 263 Subtipos Definidos Pelo Usuário ...................................................................................................................... 263 Conversão Implícita ......................................................................................................................................... 264Fundamentos em: Declarações .......................................................................................................... 265 Introdução ........................................................................................................................................................ 265 Variáveis e Constantes ..................................................................................................................................... 265 %Type ............................................................................................................................................................... 266 Escopo e Visibilidade ........................................................................................................................................ 266 Qualificação ...................................................................................................................................................... 267 Restrições .......................................................................................................................................................... 268Fundamentos em: Comandos Básicos ............................................................................................... 269 Atribuição ......................................................................................................................................................... 269 IF ....................................................................................................................................................................... 270 Select Into ......................................................................................................................................................... 271 GoTo ................................................................................................................................................................. 272 Restrições ..................................................................................................................................................... 272 Null ................................................................................................................................................................... 273 Funções ............................................................................................................................................................. 274 Funções de SQL Válidas em PL/SQL ............................................................................................................ 274 Funções de SQL Inválidas em PL/SQL ......................................................................................................... 274 Sqlcode ......................................................................................................................................................... 274 SqlErrm ........................................................................................................................................................ 275 Case .................................................................................................................................................................. 275 Exercícios .......................................................................................................................................................... 277Fundamentos em: Comandos Iterativos ........................................................................................... 279 Cursor ............................................................................................................................................................... 279 Declaração .................................................................................................................................................... 279 Abertura ....................................................................................................................................................... 280 Fetch ............................................................................................................................................................. 281 %Rowtype .................................................................................................................................................... 281 Fechamento ................................................................................................................................................. 282 Cursores Implícitos ...................................................................................................................................... 283 %Found ........................................................................................................................................................ 283 %NotFound .................................................................................................................................................. 283 %Isopen ....................................................................................................................................................... 284 %Rowcount .................................................................................................................................................. 284 Update Para Cursor ...................................................................................................................................... 285 Delete Para Cursor ....................................................................................................................................... 286 Loop ................................................................................................................................................................. 287 Exit ............................................................................................................................................................... 287XVI ✦00CURSO COMPLETO Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 18. SUMÁRIO While ................................................................................................................................................................ 288 For Loop ........................................................................................................................................................... 289 Cursor Loop ...................................................................................................................................................... 290 Exercícios .......................................................................................................................................................... 291Fundamentos em: Tratamento de Erro ............................................................................................. 292 Introdução ........................................................................................................................................................ 293 Vantagens das Exceptions ................................................................................................................................ 293 Definindo Exceptions ...................................................................................................................................... 294 Exceptions Predefinidas ................................................................................................................................... 294 Causando uma Exception ................................................................................................................................ 296 O Verbo Raise ............................................................................................................................................... 296 Exception_Init ............................................................................................................................................. 297 A Procedure Raise_Application_Error .............................................................................................................. 298 Propagação da Exceção .................................................................................................................................... 299 As Funções Sqlcode e SqlErrm .......................................................................................................................... 300 When Others .................................................................................................................................................... 300 Exceptions Adquiridas na Declaração ......................................................................................................... 301 Exercícios .......................................................................................................................................................... 301Fundamentos em: Index-By Tables e Registros ................................................................................ 303 Introdução ........................................................................................................................................................ 303 Index-By Tables ................................................................................................................................................ 303 Declaração e Atribuição ............................................................................................................................... 304 Manipulando Index-By Tables ..................................................................................................................... 305 Métodos ............................................................................................................................................................ 305 Exists ............................................................................................................................................................ 306 Count ........................................................................................................................................................... 307 Limit ............................................................................................................................................................. 307 First e Last .................................................................................................................................................... 307 Prior e Next .................................................................................................................................................. 308 Extend .......................................................................................................................................................... 309 Trim .............................................................................................................................................................. 309 Delete ........................................................................................................................................................... 309 Exceptions Para Coleções ................................................................................................................................. 309 Criando Matrizes .............................................................................................................................................. 310 Registros ........................................................................................................................................................... 311 Declarações .................................................................................................................................................. 311 Referenciando Registros ............................................................................................................................... 312 Manipulando Registros ................................................................................................................................ 314 Exercícios .......................................................................................................................................................... 315Fundamentos em: Bulk Binds ............................................................................................................ 316 Conceitos .......................................................................................................................................................... 316 O Comando ForAll ....................................................................................................................................... 317 A Cláusula Bulk Collect ............................................................................................................................... 318 O atributo %Bulk_RowCount ...................................................................................................................... 319 O atributo %Bulk_Exceptions ...................................................................................................................... 320 Os Demais Atributos .................................................................................................................................... 321 Características ou Restrições ........................................................................................................................ 321 Exercícios .......................................................................................................................................................... 322Fundamentos em: Subprogramas ...................................................................................................... 322 Conceito ........................................................................................................................................................... 322 Características dos Subprogramas .................................................................................................................... 322 Parâmetros ........................................................................................................................................................ 324 Modos dos Parâmetros ................................................................................................................................. 324 CURSO COMPLETO00✦ XVII Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.
  • 19. ORACLE 9I PARA DESENVOLVEDORES CURSO COMPLETO Passagem de Parâmetro por Referência ....................................................................................................... 326 Valor Default ................................................................................................................................................ 326 Notação Posicional e Nomeada Para Passagem dos Parâmetros ................................................................. 327 Declarações Forward ........................................................................................................................................ 328 Overloading ...................................................................................................................................................... 329 Stored Subprogram ........................................................................................................................................... 330 Uso de Funções em Comandos de SQL ....................................................................................................... 331 Verificando Erros de Compilação ................................................................................................................ 331 Privilégios em Rotinas Armazenadas ............................................................................................................... 331 Usando AuthId Current_User ...................................................................................................................... 332 Referências Externas .................................................................................................................................... 333 Cuidados Adicionais .................................................................................................................................... 333 Uso de Coleções e Registros como Parâmetros de Subprogramas ................................................................... 334 Usando Funções Para a Criação de Índices ................................................................................................. 335 Exercícios .......................................................................................................................................................... 336Fundamentos em: Packages ............................................................................................................... 337 Conceito ........................................................................................................................................................... 338 Package Specification ....................................................................................................................................... 338 Package Body .................................................................................................................................................... 339 Restrições .......................................................................................................................................................... 339 Usando Packages .............................................................................................................................................. 340 Usando Pacotes Para Troca de Informações ................................................................................................ 341 Overloading ...................................................................................................................................................... 343 Uso de Funções de Pacotes em Comandos SQL ............................................................................................... 344 Nível de Pureza ............................................................................................................................................ 344 Nível de Pureza e Overloading .................................................................................................................... 345 Nível de Pureza e Comandos de SQL ........................................................................................................... 346 Restrições ..................................................................................................................................................... 347 O Argumento Trust ...................................................................................................................................... 347 Alguns Pacotes do Oracle ................................................................................................................................. 348 Package Standard ......................................................................................................................................... 349 Package Dbms_Standard .............................................................................................................................. 349 Package Dbms_Output ................................................................................................................................. 350 Package Dbms_Pipe ..................................................................................................................................... 350 Package Utl_File ........................................................................................................................................... 350 Package Dbms_Sql ....................................................................................................................................... 351 Package Dbms_Alert ..................................................................................................................................... 351 Package Dbms_Random ............................................................................................................................... 351 Package Dbms_FlashBack ............................................................................................................................ 351 Package Dbms_Lob ...................................................................................................................................... 351 Package Dbms_Rowid .................................................................................................................................. 351 Package Utl_Http ......................................................................................................................................... 351 Exercícios .......................................................................................................................................................... 351Fundamentos em: O Package Dbms_Output .................................................................................... 352 Conceito ........................................................................................................................................................... 352 Enable ............................................................................................................................................................... 353 Disable .............................................................................................................................................................. 354 Put ...........................