labidi orcl pl sql f2

441
SQL - PL/SQL Parte V: ORACLE Dr. Sofiane Labidi

Upload: leticia-lima

Post on 25-Nov-2015

117 views

Category:

Documents


5 download

TRANSCRIPT

  • SQL - PL/SQLParte V: ORACLEDr. Sofiane Labidi

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Plano (1)Introduo ..................................................................... 5SQL*Plus ..................................................................... 12Criao de Usurios .................................................... 39Comandos Bsicos ...................................................... 45Tipos de Dados ........................................................... 54Criao de Tabelas ..................................................... 64Restries .................................................................... 70ndices ....................................................................... 105Seqncias ................................................................ 110Vises ........................................................................ 115

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Plano (2)User Variables ..................................................... 125Transaes .......................................................... 138Controle de Concorrncia .................................... 150Relatrios ............................................................ 160Funes Comuns ................................................ 196DB Navigator ....................................................... 238Objetos Oracle ..................................................... 251PL/SQL ................................................................ 277Stored Program Unit ............................................ 337Stored Procedures ............................................... 339

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Plano (3)Functions ............................................................... 358Triggers ................................................................. 366Packages ............................................................... 391Cursores ................................................................ 406Excees ............................................................... 431Concluso ............................................................. 439

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*IntroduoA arquitetura Oracle praticamente a mesma para qualquer SGBD Cliente/Servidor como Sybase, Ingres, Informix, etc.Os elementos bsicos da arquitetura so:

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Ambiente OracleOracle tem como base de trabalho a linguagem SQL:O ambiente composto por:SQL, SQL*Plus, PL/SQL, e DBNavigator.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*SQLLinguagem de comandos para comunicao com os servidores de banco de dados, o Oracle Server, a partir de qualquer ferramenta ou aplicao.Como foi descrito na parte IV, a SQL relativamente simples, podendo at ser usada por usurios beta (usurios com pouca ou nenhuma experincia em programao). uma linguagem no procedural.Reduz o tempo de criao e manuteno do sistema. uma linguagem similar linguagem natural.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*SQL uma linguagem puramente interativa de construo e submisso de comandos individuais, embora os comandos sejam macro comandos muito poderosos.SQL tem muita fora, porem ela no procedural: no dar para agrupar as palavras chaves em programas executveis.O Oracle SQL contm vrias extenses:

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*PL / SQL a linguagem procedural da Oracle para escrever aplicaes lgicas e manipular dados fora do banco de dados, permitindo lgica de programao.Ela composta essencialmente de todos os comandos SQL padro e mais um grupo adicional que permite utilizar SQL de forma procedural.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*SQL * Plus o ambiente que permite tornar procedural os comandos individuais do SQL. Este ambiente composto de um editor de texto, que permite reunir grupos de frases SQL, que podem ser gravadas sob a forma de arquivo e ento executadas.O SQL * PLus, alm de poder manipular comandos SQL e blocos PL/SQL, executa vrias outras tarefas (formatao, etc.).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Oracle NavigatorConjunto de recursos (telas e formulrios) a partir deles o desenvolvidor do Baco de Dados cria, exclui, e mantm objetos e elabora estruturas.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*SQL * PLUSPronunciada "sequel plus" um ambiente para execuo dos comandos SQL e PL/SQL.Ela tem por objetivo realizar a interface interativa com o BD.SQL*Plus permite de realizar operaes como:Formatar, armazenar, recuperar, e executar comandos SQL e blocos PL/SQL;Listar definies de tabeles e vises;Atribuir valores para a execuo de comandos.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Se conectando ao SQL*PlusPortanto, para que um usurio possa se conectar ao SQL*Plus, preciso que ele esteja cadastrado.Os usurios padro so criados logo na instalao do Oracle: Scott cuja a senha TIGER, System / Manager, etc.Este usurio traz alguns exemplos de objetos de BD (tabelas, Views, etc.).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Se conectando ao SQL*PlusPara se conectar ao SQL*Plus 8i via Windows:Iniciar Programas Oracle OraHome81 Application Development SQL Plus.

    Isto ativar uma tela de identificao do usurio (Tela de Log On).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Conexo a partir de linha de ComandoO SQL*Plus pode ser ativado: A partir do Menu (Plus33W); ou A partir de uma Janela do Dos: SQLPLUS Usurio/Senha (em uma nova janela do Dos); exemplo: Sqlplus scott/tiger PLUS33 Usurio/Senha (na mesma janela); ouPLUS33W (janela Windows)No diretrio C:/ORAWIN95/BIN

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Se conectando ao SQL*PlusAo ser acionado a partir do menu, o editor ativado aps o procedimento de log on que pede:a identificao do usurio;seu cdigo de acesso, alm doHost Sring: o drive lgico que, no caso do uso Stand Alone, foi convencionado 2: mas ele no obrigatrio neste caso.Caso estivermos trabalhando em uma rede e tentando acessar um BD remoto, preciso informar o Host String: este seria por exemplo o X: mais as informaes da localizao fsica do BD.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Log OnSCOTT / TIGERDEMO / DEMOPO7 / PO7SYSTEM / MANAGERSYS / CHANGE_ON_INSTALL

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Editor OracleUma vez realizada a identificao com sucesso, o editor liberado para uso mostrando o prompt SQL> a espera de comandos para a execuo.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Edio de ComandosOs comandos so editados aps o prompt: SQL> SCOTT / TIGER e se terminam por um ponto-virgula.Eles so executados logo aps de digitar ; e teclar o enter. O comando fica gravado dentro de um buffer em um arquivo chamado afiedt.buf at que um novo comando seja digitado ou que o SQL+ seja encerrado.O buffer s pode contm um comando.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Edio de ComandosUsar o comando R[UN] ou / para re-executar o comando do buffer.A diferena entre os dois que o RUN exibe o comando antes de o executar.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Edio de ComandosQuando o comando comprido, podemos colocar um hfen (-) no final da linha, apertar o enter, e continuar digitando o comando na linha seguinte.Uma melhor soluo de usar o I[NPUT] que permite de acrescentar novas linhas ao mesmo comando no buffer.Para entrar um novo comando usando o Input deve-se primeiro limpar o Buffer usando o comando Clear Buff[er].

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Edio de ComandosSQL> Input Select * FROMSQL> Input Dept WhereSQL> Input loc like DALLASSQL> RUN1 Select * From2 Dept Where3* Loc like Dallas DEPTNO DNAME LOC----------- ------------------ -----------20 RESEARCH DALLASSQL> SQL> Input 1Select * FROMDept WhereLoc Like DALLAS SQL> / DEPTNO DNAME LOC----------- ---------------- -----------20 RESEARCH DALLASSQL>

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Edio de ComandosPara visualizar todas as linhas do buffer usa-se o comando L[IST]. Para visualizar a linha atual: List *Para visualizar uma linha especfica n: List n (a a linha n torna-se a linha atual)Para visualizar um intervalo: List n m Para visualizar a ltima linha: List lastPara visualizar de n at o fim: List n last Para visualizar da linha atual at o fim: List * last

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Edio de ComandosA mesma quase para o DEL[ETE]. Deletar a linha atual: Delete (ou Delete *) a a linha posterior fica atua;, mas se no tiver a linha anterior.Deletar uma linha especfica n: Delete n (a a linha n+1 torna-se a linha atual, seno a linha n-1)Deletar um intervalo de linhas: Del n m Deletar a ltima linha: Del lastDeletar da linha n at o fim: Del n last Deletar da linha atual at o fim: Del * last

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Edio de Comandos possvel adicionar um texto ao final de uma linha do buffer usando A[PPEND]: Append acrescentaria um apstrofo no final da linha. possvel tambm modificar um texto por um outro em uma linha usando o C[HANGE]:C/fro/fromSubstirui fro por from A4Acrescenta 4 no final da linhaC/4Tirar o 4 da linha (apenas a primeira ocorrncia)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Edio de Comandos possvel substituir uma linha completa do buffer usando n comando:SQL> 2 where loc like CHICAGOSQL> l1 Select * From Dept2 Where loc like CHICAGOSQL>

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Arquivo de Comandos (command file ou script)Para salvar o comando do buffer em um arquivo usa-se o SAV[E]:SQL> Clear Bufferbuffer clearedSQL> INPUT1 CREATE TABLE ALUNO 2(CPD Number(4) ,3 Nome Varchar(30) ,4 Sexo Char(1) ,5 Fone Varchar(10))6SQL> SAVE criar.sql Mesmo se no botar a extenso sql o Oracle botaria.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Arquivo de Comandos (command file ou script)Geralmente usa-se um editor de comandos para corrigir e salvar um conjunto de comandos. O Editor acionado usando o comando ED[IT] que por default abri o buffer (arquivo afiedt.buf). o texto digitado tratado pelo wordpad no buffer (chamado afiedt.buf) em C:\ORAWIN95\BIN (caso do Oracle 7).ED nm abrir o script nm.sql, mas se este no existe Oracle pede para o criar.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Arquivo de Comandos (command file ou script)Graas ao comando GET podemos carregar os comandos de um sript um por um: GET nome-scriptH duas maneiras para executar um script usando o comando STA[RT] arq ou @ arq.O @ combina os dois comando GET e /.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Cada comando no script deve terminar por ; Para colocar comentrios, usar:-- (da ANSI) ou /* ... */ (da SQL) ou REMARK (da SQL*Plus) Para visualizar os comandos executados a cada vez, quando executados defina a varivel de ambiente ECHO a ON:SET ECHO ON (Seno set echo off).DEFINE _EDITOR = "C:\Windows\Notepad" definio do editorArquivo de Comandos (command file ou script)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Comandos bsicos de EdioEd[it] (ou ed)abri o editor editando o ltimo comando para alteraoEd[it] arqabri o arquivo arq ou cria um novo se ele no existe Clear bufferesvazia o buffer

    R[un] ou / executa o contedo do buffer (o Run exibe o comando)Sav[e] arqsalva o ltimo comando (buffer) em um arquivo arq.sqlGet arqtraz as instrues de um arquivo para o buffer (busca)Sta[rt] arq executa um script@ arq combina os comandos Get e Run (exibe os comandos)

    C[hange]/old/new substitua a 1a ocorrncia de uma palavra old por newChange /textodeleta a 1a ocorrncia de texto no comando

    Spool arq arquiva os resultados dos Queries no arquivo arq.lst Spo[ol] off|outencerra ou encerra e imprime o spool Exit ou Quitpara sair do SQL * PlusHELP comandotraz o arquivo de ajuda

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Outros comandos de edioA[ppend] textadiciona um texto no final da linha correnteI[nput] textinsira uma nova linha no buffern comandosubstitua/coloca o comando na linha do buffer-colocar um hfen no final da linha para poder continuar o comando na segundaL[ist] lista todas as linhas do buffer (o comando)list *lista a linha atual do bufferlist n (ou n)lista a linha n do bufferlist n mlista o intervalo n,m das linhaslist lastlista a ltima linha

    del(ou del *)deleta a linha correntedel lastdeleta a ltima linha do bufferdel n mdeleta o intervalo de linhas de n a mdel * lastdeleta da linha atual at a ltima linhaClear Screen Limpar a tela do SQL*Plus

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*AplicaoSQL> Clear Bufferbuffer clearedSQL> INPUT1 CREATE TABLE ALUNO 2(CPD Number(4) ,3 Nome Varchar(30) ,4 Sexo Char(1) ,5 Fone Varchar(10))6SQL> SAVE criar.sql

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*AplicaoConsiderando o comando anterior, e usando os comandos de edio:Acrescentar os dois campos D_Nascimento e Endereco tabela aps o campo Sexo.Modificar o tamanho de CPD para Number(5).Defina o CPD como primary key.Verificar as mudanas a cada vez.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ManipulaoGET criar.sqlL 44 * Sexo Char(1),I5i D_Nascimento Date,6i Endereco Varchar(50) ,7i L 4 7 (ou L * Last)4 Sexo Char(1),5 D_Nascimento Date,6 Endereco Varchar(50) ,7 * Fone Varchar(10))L 22 * CPD Number(4),C /4/5L 22 * CPD Number(5),C/,Primary Key,L22 * CPD Number(4) Primary Key,

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Variveis do SQLUm comando SQL termina por ; o que implica sua execuo. Tal caractere definido na varivel do ambiente SQLT[erminator] e pode ser modificado. Por exemplo:SET SQLT "+"Select * From Dept+ listaria os departamentos;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Nested Command FilePara executar vrios command files pode criar um command file que contm as diferentes chamadas: cfstart cf1start cf2start cf3 O start f far que cf1, cf2, e cf3 sero executados na seqncia.Podemos usar tambm os comandos @ e @@ para startar um command file.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*@@Por default um script procurado em c:/Orawin95/BinO @@ equivalente ao @ e ao Start, s que ele procure o arquivo no diretrio atual:Exemplo: Seja o seguinte script arq no bin e dois scripts teste1 e teste2 na raiz): c:/orawin95/bin/arq: start c:\teste1;@arq ; arq procurado em c:/orawin95/bin@@teste2 ; teste2 ser procurado no diretrio atual, ;que o diretrio do scrpit test1 ou ;seja c:/ e no no c:/orawin95/bin. @teste1 ; neste caso o arquivo teste1 procurado ; em c:/orawin95/bin (o diretrio por ; default) e no vai ser encontrado.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de UsuriosUser um tipo de objeto Oracle que pode ser criado com os outros tables, views, sequences, indexes, snapshots, synonyms, dblinks, Stored Program Units, etc.Os users definam usurios que tem um nome e identificados por uma senha e onde so associados privilgios. Os privilgios so geralmente agrupados em roles.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de UsuriosNo SQL*Plus os usurios so criados pelo comando create user:Create User Labidi identified by labidi;

    Para altera senha:Alter User Labidi identified by nova-senha;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de UsuriosPara atribuir direitos:Grant dba TO Joo;Grant select ON Dept TO Joo;Grant select, Insert ON Dept TO Joo;Grant select any table TO Joo;Grant connect TO Joo;Grant References ON Dept TO Joo;

    Para Retirar Direitos:Revoke delete ON Dept FROM joo;Revoke dba FROM joo;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de UsuriosPara remover um Usurio:Drop User joo;

    Create Role X identified by Y;Grant P1,P2,P3 On tb TO X;Veremos isto mais tarde!

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Objeto User (em SQL)select username from dba_users;USERNA---------------------------SYSSYSTEMLABIDISCOTTDEMOPO7Apenas um DBA tem direito de acessar esta viso do dicionrio de dados.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Objeto User (em SQL)desc dba_users;Name Null? Type------------------------------- -------- ----USERNAME NOT NULL VARCHAR2(30)USER_ID NOT NULL NUMBERPASSWORD VARCHAR2(30)DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)CREATED NOT NULL DATEPROFILE T NULL VARCHAR2(30)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Comandos bsicos do SQLComandos de criao e modificao da base:Tabelas Create table Alter table (modify, add) Drop tabel Rename

    ndices Cretae index Drop index

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Comandos bsicos do SQLComandos de insero e alterao de dados: Insert Update (de tuplas) Delete

    Comandos de pesquisa: Select

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Exemplo de criao tabelasCREATE TABLE PRODUTO(CodigoNUMBER(10),Nome VARCHAR2(30),Preco NUMBER(10,2))execute desc[ribe] produto para visualizar a estrutura da tabela criada. e Select * from tab para listar as tabelas criadas

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Consulta Select * From User_Objects;

    Select * From User_ObjectsWhere Object_Type = 'TABLE';

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Inserir Tuplasinsert into produto values(2,'Celular',438.25); select * from produto;

    insert into produto(nome,codigo) values('Caneta',5); select * from produto;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Inserir TuplasPodemos tambm fazer um insert interativo, usando variveis:

    insert into Alunos (cpd, nome)values (&cpd, &nome)

    Detalharemos isto mais tarde.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Inserir Tuplas possvel tambm fazer insero a partir de outras tabelas:

    insert into Produtos2 Select * From ProdutosWhere Preco>=100;

    insert into Pessoas (nome,fone) Select nome,fone From Alunos;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Operaes com ConjuntosAlm do Join normal podemos fazer operaes como a Interseo (INTERSECT), Unio (UNION), ou Diferena (MINUS):Exemplo:Select Nome From PessoaMINUSSelect Nome From Alunos;

    Vai nos retornar as pessoas que no so Alunos.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Order ByPodemos ordenar uma tabela indicando o nmero da coluna de ordenao:

    SQL> Select * From Scott.Dept Order By 2;

    DEPTNO DNAME LOC----------- -------------------- ------------------ 10 ACCOUNTING NEW YORK 40 OPERATIONS BOSTON 20 RESEARCH DALLAS 30 SALES CHICAGO

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Tipos de Dados ComunsChar(n)Campo de tamanho fixo, contm at 255 chars (n255): tipo Alfanumrico. Por default n=1. Usado para atributos de tamanho fixo e conhecido, como sexo (1 char) ou UF (2 char). Varchar(n)Campo de tamanho varivel (n2000). Alfanumrico econmico.

    Varchar2(n)Campo de tamanho varivel (n4000). Alfanumrico econmico.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Tipos de Dados ComunsNumber(n,m) Aceita ate n=38 dgitos numricos (incluindo m dgitos aps a vrgula). Long um Memo, podendo receber at 2 GB GB de caracteres. Ele no pode ser indexado, ou usado nas clausulas Where, Group by, e Order by. Em uma tabela, pode ter no mximo um campo Long. Oracle sugere usar os novos tipos: CLOB e NCLO no lugar. CLOB/NCLOB Armazena cadeia longa de caracteres no estruturados como texto, som, imagens, vdeo, etc. podendo chegar at alguns GB.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Tipos de Dados ComunsBLOB Armazena cadeia longa de dados binrios em at alguns BG. BFILE Armazena dados binrios no estruturados, em arquivos do SO fora do BD. RAW(n) e LONG RAW(n) so substitudos por BLOB e BFILE.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Tipos de Dados ComunsROWID armazena o endereo fsico em hexadecimal de cada tupla do BD, no formato: 000000FFFBBBBBBRRR, onde 000000 o nmero do objeto, FFF o nmero do arquivo de dados que contm a tupla, BBBBBB o nmero do bloco de dados que contm a tupla e RRR o nmero da tupla no bloco dedados.Isto pode ser til quando queremos informaes sobre o armazenamento fsico dos dados de uma tabela.

    MLSLABEL Armazena o formato binrio e um label utilizado em um sistema operacional seguro.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Tipo Date DateData/Hora no formato padro mm-dd-aaaa hh-mm-ss. Representao em 7 bytes, [4712AC, 4712DC].A hora por default 12:00:00 e a data por default o primeiro dia do ms atual.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Tipo DataPara visualizar a data:SQL> Select Sysdate From Dual;

    SYSDATE---------------08-JUN-02

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formato da DataO formato da data especificado no parmetro de inicializao: NLS_DATE_FORMAT (National Language Standards). um string de tipo DD-MON-YY.O formato pode ser alterado atravs do comando ALTER SESSION.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formato da DataSQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MONTH-YYYY';

    Session altered.

    SQL> SELECT SYSDATE FROM DUAL;

    SYSDATE------------------------08-JUNE -2002

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formato da Data ALTER SESSION Set NLS_DATE_LANGUAGE='FRENCH'; ALTER SESSION Set NLS_DATE_LANGUAGE='PORTUGUESE'; SQL> SELECT SYSDATE FROM DUAL;

    SYSDATE------------------------08-JUNHO -2002

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao de DatasDDO dia do ms em dois dgitos: 6, 25.DY As trs primeiras letras do dia: QUI.DAYO dia da semana em completo: Quinta-feira.MMO ms em nmero de 1 a 12.MONO ms em trs letras: JAN, ABR.MONTHO ms em inteiro: Janeiro, Abril.YYO ano em dois dgitos: 02.YYYYO Ano em completo: 2002.RRO ano em dois dgitos levando em conta o milnio.RRRRO ano em completo levando em conta o milnio.HHA hora no formato AM/PM.HH24A hora no formato 24h.MIOs minutos em dois dgitos.MIAMOs minutos em dois dgitos no formato AM/PM.SSOs segundos em dois dgitos: 59.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de Tabelas

    CREATE TABLE nome-tabela (nome-coluna Tipo [(Tamanho)] [restries] [,....nome-coluna Tipo [(Tamanho)] [restries] ][, RESTRIES] )

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de Tabelas

    CREATE TABLE PRODUTO ( CdigoNUMBER(10), Nome VARCHAR2(30), Preo NUMBER(10,2) )

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de TabelasCREATE TABLE CLIENTE(CdigoNUMBER(10),Nome VARCHAR2(30),Aniversrio DATE) Obs. No h virgula aps a definio do ltimo atributo da tabela (s se tiver restries).

    insert into cliente values(20,'Carlos','12-10-80'); insert into cliente values(12, 'Roberta', '05/10/65');

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de TabelasCriao a partir da consulta de outras Tabelas: CREATE TABLE nome-tabela [(nome-coluna [restries] [,nome-coluna [restries] ]....[, RESTRIES] )] AS SELECT ...

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de TabelasCreate Table PRODUTOS_CAROS AS Select * From Produtos Where Preco>1000;

    Create Table T1 (deptnum (check deptnum>=20)) AS Select DeptNum From Scott.Dept Where Deptnum >=20;

    A criao no herda as restries (chaves primrias, etc.): Alter Table T1 add Primary Key(deptnum)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Renomear Tabelas possvel modificar o nome de ume tabela:RENAME nome-tabela TO novo-nome;

    Exemplos:RENAME Temporrio TO Temp;A mudana feita mesmo se a tabela vinculada a outras tabelas.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*RestriesAs Restries (Constraint) so as regras bsicas para preenchimento dos campos:H vrios tipos de Constraints:Campo Obrigatrio:Not Null;Campo nico:Unique(U);Chave Primria: Primary Key(P);Chave Estrangeira: Foreign Key (R);Campos Restritos:Chek(C).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos Obrigatrios CREATE TABLE PRODUTO ( CdigoNUMBER(10)Not Null, Nome VARCHAR2(30)Not Null, Preo NUMBER(5,2) )

    Testa uma entrada sem o campo nome: insert into produto(Cdigo,Preo) values(8,560);Esta Tupla no vai ser aceita pois falta o nome do produto que um campo mandatrio.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Valores por DefaultCREATE TABLE CLIENTES (CODIGONUMBER(10)Not Null,NOME VARCHAR2(30)Not Null,DATA DATENot Null,ESTATO NUMBER(1,0) DEFAULT '1' Not Null,ESTADOVARCHAR2(2) DEFAULT 'MA' Not Null,TIPO VARCHAR2(1)DEFAULT 'B' Not Null,CGC VARCHAR2(14) Not Null )

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ObservaoOs campos (atributos) em uma tabela podem ser vazios ou nulos (NULL).Usa-se a funo nvl() para retornar valores mais significativos (em lugar de um campo vazio).Exemplo:Select Nome, NVL(Nota,0) From Alunos;

    Update Alunos Set Media = (nvl(Nota1,0) + nvl(Nota2,0)) / 2;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Definio das RestriesAs outras restries podem ser definidas de vrias maneiras:No momento da criao da tabelas: Colocar o tipo da restrio aps o campo em questo e antes da vrgula; No final, antes de fechar a parntese do create.Aps a criao da tabela:As restries podem ser nomeadas ou no. Usa-se restries nomeadas quando se quer a manipular. Por exemplo uma restrio poderia ser removida, etc. usando o seu nome.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos nicosO unique Defina uma ou mais colunas que no podem ter valores repetidos em mais de uma tupla na tabela.O Unique geralmente colocada para as chaves alternativas (campos que poderiam ser uma chave mas que no foram escolhidos).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos nicosCREATE TABLE PESSOA(CPF VARCHAR2(15)Not Null,IDENTIDADE NUMBER(10)UNIQUE, NOME VARCHAR2(30)Not Null)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos nicosCREATE TABLE PESSOA(CPF VARCHAR2(15)Not Null,IDENTIDADE NUMBER(10) , NOME VARCHAR2(30)Not Null UNIQUE(Identidade) )

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos nicosCREATE TABLE PESSOA(CPF VARCHAR2(15) Not Null,IDENTIDADE NUMBER(10) Constraint Id_Un UNIQUE,NOME VARCHAR2(30) Not Null,)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos nicosCREATE TABLE PESSOA(CPF VARCHAR2(15) Not Null,IDENTIDADE NUMBER(10) ,NOME VARCHAR2(30) Not Null,Constraint Id_Un UNIQUE(Identidade) )

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos nicosCREATE TABLE PESSOA(CPF NUMBER(10,0) Not Null,IDENTIDADE NUMBER(5,2) ,NOME VARCHAR2(30) Not Null)

    Alter Table PESSOA Add UNIQUE(Identidade)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos nicosCREATE TABLE PESSOA(CPF NUMBER(10,0) Not Null,IDENTIDADE NUMBER(5,2) ,NOME VARCHAR2(30) Not Null)

    Alter Table PESSOA Add Constraint Id_Um UNIQUE(Identidade)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Chave PrimriaCreate Table Aluno( CPDchar(6) Primary Key,Nome varchar2(10), Nota number(2,1) default 0, Estado varchar(2) default 'MA') /* soluo vlida apenas no caso de uma chave mono-atributo */

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Chave PrimriaCreate Table Voo( VooNumchar(6), Datadate, Tipovarchar(2) , Primary Key (VooNum))

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Chave PrimriaCreate Table Voo( VooNumchar(6), Datadate, Tipovarchar(2) , Primary Key (VooNum,Data))

    A chave aqui composta por dois atributos

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Chave PrimriaCreate Table Aluno( CPD char(6) Constraint AlPK Primary Key,Nome varchar2(10), Nota number(2) default 0, Estado varchar(2) default 'MA',) /* soluo vlida apenas no caso de uma chave mono-atributo */

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Chave PrimriaCreate Table Voo( VooNumchar(6), Datavarchar2(10), Tipovarchar(2) , Constraint Voo_PK Primary Key (VooNum,Data))

    A chave aqui composta por dois atributos

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Chave PrimriaAlter Table Cliente Add (Primary Key (CodCli));Alter Table Cliente Add Constraint Cli_PK (Primary Key (CodCli));

    Alter Table Aluno Add (Primary Key (Nome,SobreNome));Alter Table Aluno Add Constraint Al_PK (Primary Key (Nome,SobreNome));

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Vinculando TabelasCreate Table Pilotos ( PilNumnumber(3) , NomeVarChar2(20) , Salrionumber(7,2) , Primary Key (PilNum) )

    Create Table Vos ( VooNumchar(6), DataDate, Tipovarchar(2) , Pil number(3), Primary Key (VooNum,Data), Foreign Key (Pil) REFERENCES Pilotos)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Vinculando Tabelas Alter Table Alunos Add (Foreign Key (CodCur) References Cursos);

    Alter Table Vos Add (Foreign Key (Pil) References Pilotos);

    Alter Table Vos Add (Constraint C_FK Foreign Key (Pil) References Pilotos);

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ObservaesAs chaves primrias e estrangeiras so consideradas como Constraints.Para adicionar Foreign Key preciso que a tabela vinculada j tem uma Primary Key e que temos compatibilidade de tipos.Seno teremos erros de tipo: ORA-02270 e ORA-02256.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Vinculando Tabelas Isto implica a verificao automtica da integridade referncial.Precisa prestar ateno correspondncia de tipos entre a chave estrangeira e a chave primria (da relao referenciada).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos RestritosCreate Table Alunos( CPDchar(6),Nome varchar2(10), Nota number(2) default 0, check (nota >=0 and nota
  • Prof. Dr. Sofiane Labidi*Campos RestritosCreate Table Alunos( CPDchar(6),Nome varchar2(10),Sexo char, Constraint RestSexo check (Sexo in ('F', 'M')) Nota number(2) default 0, Estado varchar(2) default 'MA',Data_Aniv Date , Constraint Rest1 check (nota between 0 and 10),)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Campos RestritosAlter Table Alunos Add (Constraint Nt_Aluno Check (Nota between 0 and 10));

    Alter Table Produtos Add (Constraint Preo_Prod Check (Preo >= 10));

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Manipulao de ConstraintsRemovendo Restries:Alter Table Alunos Drop Constraint NomeRest;

    Habilitando e Desabilitando Restries:Alter Table Alunos Disable Constraint NomeRes;Alter Table Alunos Enable Constraint NomeRes;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Observao possvel acrescentar restries sobre campos preenchidos desde que os valores preenchidos nesses campos obedecem restrio: Create table Clientes (CodCli Number(3), NomeCli Varchar(30)); Table created Insert into Clientes Values (1,'Joo');1 Row createdInsert into Clientes Values (2,'Carmem');1 Row created Alter Table Add Primary Key (CodCli)Table Altered

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ObservaoCreate table Clientes (CodCli Number(3), NomeCli Varchar(30));Table createdInsert into Clientes Values (1,'Joo');1 Row createdInsert into Clientes Values (1,'Joo');1 Row createdAlter Table Add Constraint C_Clientes_PK Primary Key (CodCli);ERROR at line 1:ORA-02437: cannot enable (LABIDI.C_T5_PK) - primary key violated

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ObservaoCreate table Clientes (CodCli Number(3), NomeCli Varchar(30));Table createdInsert into Clientes Values (1,'Joo');1 Row created

    Alter Table Add Constraint C_Clientes_PK Primary Key (CodCli);Table Altered

    Insert into Clientes Values (1,'Carmem');ERROR at line 1:ORA-00001: unique constraint (LABIDI. Clientes_PK) violated

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Recuperando Info. Sobre RestriesInformaes sobre as restries podem ser encontradas na tabela User_Constraints:Select * From User_ConstraintsWhere Table_Name = 'PESSOA'; --nome tabela em Maisculo!As informaes dadas so:Owner Constraint_Name Constraint_Type (P PK, R FK, C Chek, U Unique) Table_NameSearch_Condition no caso de constraint de tipo Check para especificar o domnio ou a condio.R_Owner no caso de constraint de tipo R para a restrio do PK.R_Constraint_Name no caso de restrico referncia (indica a restri. da primary key).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Recuperando Info. Sobre RestriesOutras informaes sobre os atributos envolvidos nas restries podem ser recuperadas na tabela User_Cons_Columns: Status (Enabled ou no)Select * From User_Cons_Columns Where Constraint_Name = 'RestNotas';As informaes dadas so:Owner Constraint_Name Table_NameColumn_NamePosition - seqncia (ordem) do atributo dentro da restrio.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Alterar a Estrutura de uma TabelaAlter Table Aluno Add (Bairro varchar2(10));Alter Table Aluno Add (constraint c2 (check Sexo in (F,M)));

    Alter Table Aluno Modify (CPD varchar2(10)); -- pode ser uma lista

    desc Aluno;

    Observao: Apenas campos vazios podem mudar de tipo ou diminuir de tamanho! O aumento de tamanho sempre possvel. No podemos deletar atributos.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*AtualizaoAumenta de 10% o salrio dos funcionrios contratados antes de 2001:Update Funcionrios Set Salrio=Salrio*1.1 Where Data_Contratao
  • Prof. Dr. Sofiane Labidi*RemooDeletar o produto nmero 15:Delete FromProduto Where CodProd=15;Observao:Delete FromProduto;/* deleta todos os produtos */

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Ambiente SQL*PlusSet LineSize100 Set Pagesize12Set pause ONSet pause "aperta uma tecla para continuar..."Set space 2Set Feedback ON / OFFSet Feedback 5SetSQLPrompt SQL>SetEchoOn/OFFGlobal SQL*Plus Login File: glogin.sqlC:\ORAHOME\PLUS33\glogin.sql

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ndicesUm ndice uma estrutura de Oracle que permite uma recuperao rpida dos dados (quando menos de 15% da tabela recuperado):Os ndices tm muita utilidade nos BD.Apenas as consultas que tiverem na sua clusula where as colunas (todas as colunas ou as primeiras) do ndice utilizaro o ndice.Podemos indexar at 16 colunas.Os ndices no podem ser alterados.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de ndices

    Create Index Id_Nome ON Clientes (Nome)

    Create Unique Index Id_CpfCli ON Clientes (CPF Desc)

    Create Index Id_DataCli ON Pedido (DataPed ASC, CodCli DESC)

    ASC a ordem por default.Um ndice nico um ndice que no permita repities.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Remoo de ndicesNo possvel alterar um ndice:Para tal, preciso deletar e re-criar o ndice.

    Para deletar um ndice:Drop Index id_Nome;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Informaes sobre ndicesTodas as informaes sobre ndices esto na tabela User_Indexes:Index_NameTable_OwnerTable_NameInformaes sobre as colunas que compem os ndices encontram-se na tabela User_Ind_Columns:Index_NameTable_NameColumn_NameColumn_PositionColumn_Length

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Informaes sobre ndicesSelect *From User_IndexesWhere Table_Name = NOME;

    Select Column_Name From User_Ind_ColumnsWhere Table_Name = NOME;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*SeqnciasUma seqncia um objeto Oracle independente, usado para gerar novos valores numricos sob forma de uma seqncia. Esses objetos so geralmente usados para construir o prximo valor de uma chave primria (tipo AutoInc).Por default, a seqncia comea em 1 e o incremento 1.Usa-se as funes nextval e currval para gerao do novo valor, e referncia do valor atual.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao e Uso das SeqnciasCreate Sequence seq1; Select Seq1.nextval from Dua; -- 1insert into produto(Cdigo,Nome) values(seq1.nextval, 'Carro',9000);/* insere um carro de cdigo 1 */ Create Sequence Seq2 start with 10 increment by 5 maxvalue 10000 cycle;/* os atributos opcionais de seqncia */nextval deve ser executado primeiro (antes do primeiro currval).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao e Uso das SeqnciasTemos as opes:Maxvalue / NoMaxvalueMinvalue / NoMinvalueCycle / Nocycle

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao e Uso das Seqncias

    Select Seq1.Nextvalue From Dual;Select Seq1.Currvalue From Dual;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Alterao de SeqnciasAlterar uma Seqncia:Alter Sequence seq4 increment by 5;Alter sequence seq4 increment by 10 cycle; -- Apenas o start with no pode ser alterado

    Deletar uma Seqncia:Drop sequence seq2;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ViewsUma viso uma tabela virtual podendo ser utilizada a qualquer momento. uma tabela lgica que no ocupa espao no BD.Pode ser usada para aumento da segurana.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao das ViewsFormato:

    Create View Nome-View[nome-coluna [, nome-coluna] ]AS Select ...

    Obs. O comando SQL pode ou no ser colocado entre parnteses.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao das ViewsCreate View Funcionario2 As SelectMatricula, Nome, EndereoFromFuncionrios;

    Funcionrio2 aqui uma viso da tabela Funcionrios que elimina o campo salrio. possvel selecionar, alterar, e remover nesta viso.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Manipulaes das VisesGeralmente, possvel inserir, atualizar, e excluir em uma viso.Observe-se que as operaes sobre as vises so refletidas sobre as tabelas de origem (se uma linha inserida em uma viso ela automaticamente inserida na tabela).Porm, vises contendo Join, Group By, Distinct, Aliases, e Expresses geralmente s podem ser consultadas.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao das ViewsCreate View Produtos2 As SelectCodProd, NomeProd, Categoria, PreoFromProdutosWherePreo between 100 and 200; Neste caso, quando se insira um produto de preo fora do intervalo [100,200] na viso, isto no dar erro mas a tupla ser inserida apenas na tabela de origem Produtos.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao das ViewsCreate View Produtos2 As SelectCategoria, Count (*) Total - o alias obrigatrioFromProdutosGroup ByCategoria; Neste caso, no possvel inserir, etc. por causa do group by e do alias.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao das ViewsCreate View Venda2 As SelectCodVEnda, NomeCli, NomeProd, PreoFromVendas, Produtos, ClientesWhereVenda.CodVenda=Cliente.CodCli andVenda.CodPord=Produto.CodProd; Neste caso apenas podemos consultar pois no possvel fazer atualizaes em mais de uma tabela base (de origem).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Informaes sobre ViewsH uma tabela User_Views que lista todas as informaes sobre as vises criadas pelo usurio:View_Namenome da visoText_Lengthtamanho do comando que originou a viso.Texto comando select que originou a viso.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*User_ObjectsA tabela User_Objects armazena os objetos de BD do usurio.SQL > DESCRIBE USER_OBJECTS ; Name Null?Type_______________ _______________OBJECT_NAMEVARCHAR2(28)OBJECT_IDNUMBEROBJECT_TYPEVARCHAR2(13)CREATEDDATELAST_DDL_TIMEDATETIMESTAMPVARCHAR2(75)STATUSVARCHAR2(7)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*User_ObjectsPara apresentar apenas os nomes das tabelas: SELECT Object_Name FROM User_Objects WHERE Object_Type = 'TABLE' Para apresentar os objetos sequence: SELECT * FROM User_Objects WHERE Object_Type = 'SEQUENCE'

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*User VariablesPodemos trabalhar com variveis em SQL*Plus:Definio:define nome [= Carlos] Verificao do contedo: define nome define nome = "carlos" (char)Listar todas as variveis definidas: defineRemover uma varivel: undefinenome

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Substitution variablesPara usar uma varivel em uma query, precisa colocar o smbolo & na frente:Exemplo de uso:Define tabela = produto;Select * from &tabela listaria todos os itens de produtosDefine tabela = tab;Select * from &tabela listaria todas as tabelas

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Substitution variablesQuando, em uma consulta, a varivel no foi definida ainda, o SQL*Plus pede o seu valor ao usurio:

    SQL> clear bufferbuffer limpoSQL> input 1 select &grupo_de_colunas 2 from &tabela 3 where &conds 4 SQL> save testeCriado file teste

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Substitution variablesSQL> @testeInforme o valor para grupo_de_colunas: cod,nome,preoantigo 1: select & grupo_de_colunasnovo 1: select cod, nome, preoInforme o valor para tabs: produtoantigo 2: from &tabsnovo 2: from produtoInforme o valor para conds: cod=10antigo 3: where &condsnovo 3: where cod=10 COD NOME PREO --------- ------------------- --------- 10 Mouse 20SQL>

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Substitution variablesPara concatenar algum texto com a varivel, usa-se um ponto: SQL> SELECT * FROM EMP WHERE EMPNO='&X.01';Informe o valor para x: 123 Ser interpretado como: SQL> SELECT * FROM EMP WHERE EMPNO='12301';

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*& e &&Uma varivel com um & ter seu valor pedido a cada execuo,Porm uma varivel com && ser pedido seu valor apenas na primeira vez. Podemos usar o comando do ambiente:SET VERIFY OFF para no ficar mostrando a cada vez o antigo e o novo valor j que o valor no muda para os variveis com &&.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Outras variveis do Sistemaset Define carDefina um novo caractere de substituio. Por default : & set define on/offativa ou desativa as substituies. set Escapecardefina o caractere que deve preceder o caractere de substituies quando queremos que este seja interpretado normalmente e no como caractere de substituio, por exemplo /.set escape on/offativa ou desativa o escapamento.

    set Concat.defina o caractere separador de concatenao. Por default : . set concat on/offativa ou desativa a concatenao.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Passagem de parmetros aos command filesEla realizada atravs do & associado a um nmero indicando o rank deste parmetro na chamada do start e @ (mas no do Run e /): (aceita at 9 params)Exemplo: Seja o seguinte script teste: select * from produtowhere nome like '&1%' and salrio >= &2; A chamada: @teste M 10 equivalente a: select * from produto where nome like 'M%' and salrio>=10;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*PROMPT e ACCEPTObserve que todas as variveis criadas com define so de tipo char. Usa-se o comando ACCEPT para definir variveis de outros tipos de dados (number, date, etc.).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Accept e PromptFormato:Accept nome [Hide]Accept nome Tipo [Hide]Accept nome Tipo Prompt Texto [Hide]

    Nome Nome da varivelTipoTipo da varivel Texto Mensagem a aparecer antes da digitaoHIDE Oculta o valor digitado (colocando *)

    Por default o tipo char.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Accept e Prompt: ExemplosSQL> accept idade number25SQL> define idadeDEFINE IDADE = 25 (NUMBER)SQL>

    SQL> accept idade prompt 'informa a sua idade: 'informa a sua idade: 28SQL> define idadeDEFINE ID = 28 (NUMBER)SQL>

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ACCEPT e as User variablesHidden variables:ACCEPT sen PROMPT 'Digite a senha: ' HIDEDigite sua senha: ********

    Select * from usurios where senha=&sen;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Variveis do SistemaSQL> define _o_releaseDEFINE _O_RELEASE = "703020200" (CHAR)

    SQL> define _o_versionDEFINE _O_VERSION = "Personal Oracle7 Release 7.3.2.2.0 - Production ReleaseWith the distributed and replication optionsPL/SQL Release 2.3.2.0.0 - Production" (CHAR)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*TransaesUma transao (unidade lgica de tratamento) um grupo de aes com objetivo especfico de modificar a BD.Uma transao geralmente composta por comandos SQL que alteram vrias tabelas da base como Insert, Update, e Delete. Por razes de segurana, os dados so alterados em primeiro no Buffer. O Buffer liga o SQL*Plus ao Oracle Server.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Classes de TransaoH duas classes de transaes: DML (Data Manipulation Language) e DDL (Data Definition Language). TRANSAES DML so aquelas que possuem um conjunto de instrues DML, que so tratados pelo ORACLE como uma entidade ou unidade lgica de trabalho.TRANSAES DDL so comandos nicos DDL.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Encerramento de uma TransaoA TRANSAO inicia quando o primeiro comando DML ou DDL encontrado e termina com uma das seguintes ocorrncias:COMMIT / ROLLBACK;Linha de comando DDL;Alguns tipos de Erros;LOG OFF (sada do SQL*Plus);Falha de equipamento.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*COMMIT / ROLLBACKPara que as modificaes teriam efeitos, (sobre a base) usa-se o comando COMMIT. O Commit encerra a transao (sesso) gravando o contedo pendente (que est no Buffer) na BD. O comando ROLLBACK desfaz as aes da transao (at o ltimo COMMIT).O Rollback finaliza a transao ignorando as mudanas efetuadas e armazenadas no Buffer.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ObservaoOs comandos DDL so automaticamente COMITADOS aps a sua execuo, independente da transao ter terminada ou no. Os comandos DDL so: CREATE TABLE, ALTER TABLE, DROP TABLE, ETC.Uma sesso DDL composta por apenas um comando SQL.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Vantagens das TransaesO Rollback, cancela uma transao no desejada.O usurio pode conferir, atravs do Select, os resultados da sua transao e decidir ento se efetivar ou no a transao.Os outros usurios ficam impedidos de enxergar e portanto de alterar os registros envolvidos at que o usurio gerador da transao efetue o comando Commit.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Exemplo de Uso (1)Pode-se cancelar uma remoo no desejada: Delete From Produto; Select * From Produto;/* nenhuma linha selecionada */ Rollback;Select * From Produto;/* a tabela intacta */

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Exemplo de Uso (2)Pode-se fazer algumas operaes sobre a BD e s no final decidir se efetivar ou no as modificaes: Insert into Aluno Values(120,'Carlos', 'PD'); Alter Table Aluno Set Nome='Carla' Where CPD=120; COMMIT;Select * From Aluno;/* Agora sim, todos podem enxergar a aluna Carla ! */

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Aplicao Parcial O Rollback pode ser aplicado parcialmente. Este possvel usando o SAVEPOINT.Os savepoints permitem de delimitar trechos nos comandos. Assim, o Rollback pode ser parcial indicando o ponto que delimita o trecho vlido do trecho no desejado.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ExemploInsert Into Produto Values (10, 'Mouse',20);Insert Into Produto Values (11, 'Caneta',5);SavePoint A;Insert Into Produto Values (12, 'Caderno',8);SavePoint B;Insert Into Produto Values (13, 'Teclado',25);Rollback To SavePoint A;Insert Into Produto Values (14, 'Monitor',450);Commit;Select * From Produto;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*AutoCommitUsando a varivel do ambiente autocommit podemos proibir o rollback:SET AUTOCOMMIT ON / OFF / IMM(ON ou IMM[ediate])

    SET AUTOCOMMIT 10Comita a cada dez operaes

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Transao ReadOnlyExiste tambm, a possibilidade de se realizar uma transao apenas para consulta em tabelas, evitando que a mesma seja presa pela transao. Basta colocar o seguinte comando no incio da transao:SET TRANSACTION READ ONLYO trmino da transao cancelar automtica-mente o comando SET.Existe tambm o LOCK de linhas e colunas.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Controle de ConcorrnciaOracle usa o LOCK para controle de concorrncia:O Lock permite:Controlar o acesso concorrente em um ambiente multiusurios;Preveno de atualizaes simultneas do mesmo dado;Garantir que a estrutura da tabela no seja alterada enquanto houver atualizaes de dados.A tabela liberada ao final de cada transao.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de LockH duas maneiras de criao de Lock:Lock Implcito Gerado automaticamente pelo Banco.

    Lock Explicito Criado pelo usurio usando um comando SQL.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Criao de LockH dois nveis de restrio de Lock:SHARE Permite que vrios usurios manipulam a tabela simultaneamente.

    EXCUSIVE A tabela liberada para consulta por todos, mas apenas um pode fazer atualizaes at liberar o Lock.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Gerao de LockO Lock explcito pode ser realizado usando:Lock Table ou Select For Update.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Lock TableLOCK TABLE nome da tabela INROW SHARE / ROW EXCLUSIVESHARE UPDATE / SHARESHARE ROW EXCLUSIVE / EXCLUSIVEMODE [NOWAIT]

    Exemplo: Lock Table IN Clientes ROW EXCLUSIVE MODE;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Lock TableRow ShareGarantira que nenhum outro usurio bloquear exclusivamente a tabela.Row ExclusivePermite acesso concorrente s tabelas, bloqueando apenas as linhas individuais da tabela e permitindo assim aos outros usurios de acessar os dados para consulta.Share Update o bloqueio de linhas para uma futura atualizao. Os demais podem consultar os dados.Share Os demais s podem fazer consulta na tabela.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Lock TableShare Row ExsclusiveSomento um usurio poder fazer o COMMIT.Exclusive Apenas o usurio que gerou o bloqueio pode fazer alteraes. Os demais aguardaro at que a liberao do bloqueio.MODE NOWAIT O processo ser liberado se no for possvel efetuar o bloqueio. Quando esta opo no for utilizada, o O Oracle aguardar at conseguir efetuar o bloqueio.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Select ... For Update Of ...;Com este comando, as linhas que sero alterados ou excludos sero selecionadas e marcadas para bloqueio antecipadamente.Estrutura:Comando SQL (SELECT ...)FOR UPDATE OF nome colunas [NOWAIT];

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Select ... For Update Of ...;Exemplo:SELECT CodCli, NomeCliFROM ClientesWHERE CodCli
  • Prof. Dr. Sofiane Labidi*For Update OfO Banco de Dados permite dois tipos de acesso:LEITURA (Read Operations - SELECT)GRAVAO (Write Operations - INSERT, UPDATE e DELETE)Para permitir que uma TRANSAO que possua varias operaes de gravao em tabelas, seja realizada com total consistncia, ou seja, evitar que se utilize a tabela antes desta ser alterada, usa-se a seguinte clusula no comando SELECT:SELECT..... FOR UPDATE OF....A tabela s ser liberada por outros usurios aps o trmino da transao.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da Exibio e RelatriosAtravs de algumas varveis do ambiente, que podemos configurar, podemos definir apresentaes diferentes para as respostas dos comandos SQL.Isto poderia ser feito tambm atravs do menu do SQL*Plus.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da ExibioFEEDBACK Habilita ou desabilita as mensagem que SQL*Plus retorna logo aps de cada mensagem.Set Feedback ON/OFFSet Feedback 5 (a mensagem mostrada apenas quando as tuplas retornadas na resposta no passam do 5)SPACE Permite de definir o nmero de espaos em branco entre as colunas (atributos) de uma seleo.Set SPACE 2

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da ExibioLineSizePor default, o valor padro de uma linha 80. Os chars excedentes vo ser truncados ou apresentados na linha seguinte, dependendo da configurao da varivel WRAP. Set LineSize 60 PageSizeDefina o comprimento de uma pgina: nmero de linhas mostradas antes do ttulo ser exibido uma outra vez (incluindo ttulo, separador, linhas brancas, e tuplas). Set PageSize 10

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da ExibioWRAPQuando a resposta ( seleo) ultrapassa o tamanho especificado no LineSize, os caracteres restantes aparecero na linha seguinte caso WRAP ON ou trancado caso contrrio. Set WRAP ON -- o resto passa outra linha Set WRAP OF-- tranca (corta o resto)PAUSEDefina a quantidade de linhas a serem mostradas antes do ttulo seja executado de novo (contando o sublinhado). Set Pause 10 Set Pause "Tecla Enter"

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da ExibioECHOtil no caso da execuo de um command file para dizer se mostra ou no cada comando executado (alm do resultados). Set ECHO ON

    SQLPromptPermite de alterar o prompt do ambiente SQL*Plus. Set SQLPrompt SQL>; ( o valor por default)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da ExibioArraySizeEspecifica o nmero de linhas [1,5000] que ser trazido do BD de uma vez. Quanto maior esta varivel, maior a eficincia. Mas preciso para isso mais memria. Set ArraySize 2000 NullEspecifica o String que ser apresentado ao usurio quando o valor de um atributo for nulo. O padro .Set NULL "nada"

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da ExibioBlockTerminatorEspecifica qual caractere encerra um bloco PL/SQL (por default o ponto .).Set Blo[ckTerminator] *;

    SQL> declarex numberBeginx := 8;End;*

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da ExibioServerOutputPermite o controle das sadas, usando o comando DBMS_OUTPUT.PUT_LINE de dentro de procedures ou blocos PL/SQL. Se estiver configurado como OFF as sadas no sero mostradas. Set ServerOutput ON/OFF [SIZE n] [FORMAT f]A opo SIZE especifica o nmero de bytes [2M,1G] (padro 2000) que pode ser buferizado. A opo FORMAT especifica como sero apresentadas as linhas geradas no servidor de sadas (cada linha do servidor de sada comea em uma nova linha):WRAPPED quebra a linhaWORD_WRAPPED a quebra realizada no limite das palavras, com alinhamento esquerda.TRUNCATED trunca toda linha que excede LineSize.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da ExibioHeadingToda coluna tem um ttulo. Caso a varivel do ambiente Heading OFF, o ttulo no vai aparecer. Set Heading ON/OFF diga se o ttulo das colunas (incluindo o sublinhado) aparea ou no.Underline c/ON/OFFIndica que o ttulo vai ser sublinhado ou no, ou indica o caractere de sublinha (por default -).ExemploSet Underline *

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao da Exibio de ColunasUma coluna definida por quatro atributos de visualizao:Ttlulo (Heading); Formato; (Numricos, Data, etc.)Alinhamento; eWrapping (poder continuar na linha seguinte). Os atributos de uma coluna e seus valores podem ser listados usando o comando Column: Column Preo; (se modificado)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*COLUMNColumn o comando bsico para formatao de relatrios:COL[UMN] nome da colunaCLE[AR]FOR[MAT]HEA[DING]JUS[TIFY]LIKE nome da colunaFOLD_AFTER | FOLD_BEFORE NUL[L] valor | TextoPRI[NT] | NOPRI[NT]WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]ON/OFF

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Opo do ColumnClearlimpa a definio da colunaFormatFormata a coluna (tamanho, etc.)HeadingDefina o ttulo da colunaJustifyDefina o alinhamento do ttuloLikeCopia (herda) a definio de uma outra coluna.Fold_Afer| Fold_Before inicia uma nova linhaNullespecifica o valor a ser exibido quando o campo nulo.Print | Noprint imprime ou no a colunaOn | OffHabilita ou no a coluna. Uma coluna desabilitada mostra o ttulo e no o contedo.Wrapped Caracteres excedentes na linha seguinte.Word_WrappedO corte preserva as palavras.TruncatedTrunca os caracteres excedentes.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*HeadingsPara modificar o ttulo na visualizao;COLUMN SAL HEADING SALRIO; Para colocar nomes compostos:COLUMN COD HEADING 'Cdigo do Produto'; COLUMN COD HEADING "Cdigo do Produto "; COLUMN COD HEADING Cdigo do | Produto; O | permite de escreve o heading em vrias linhas. O caractere de quebra | pode ser substitudo por um outro usando HEADSEP: Set HEADSEP carPodemos modificar o sublinhado dos headings:SET UNDERLINE * ou SET UNDERLINE =SET UNDERLINE '-' ; aqui os apstrofos so obrigatrios ; seno ele interpreta como hfen

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao de StringsCOLUMN COD FORMAT A4; COLUMN Nome FORMAT A30; Quando o tamanho do elemento maior ao tamanho especificado para o campo, ento dependendo do valor da varivel do ambiente WRAP o dado pode ser truncado (se WRAP OFF) ou passado linha seguinte (se WRAP ON). SET WRAP ON/OFF ; por default ONMas podemos ter formatao especfica para cada coluna usando: WRAPPED, WORD_WRAPPED, e TRUNCATED.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao de NumricosO formato mnimo por default dos nmeros definido na varivel sistema: SET NUMWIDTH 10Para modificar o formato:COLUMN nome_coluna FORMAT Modelo;

    COLUMN Preo FORMAT $99,990;COLUMN Preo FORMAT L99,990;COLUMN ValorFORMAT S9999;

    L: moeda local

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao de Nmeros99999exibe um numero na posio00099exibe um zero se no tiver outro $$999Coloca um dlar BB999exibe valores 0 como brancoMi9999MI exibe apos um valor negativoS9999S exibe + apos um valor positivoPR999PRexibe valor negativo entre D99d99separa a parte decimal da parte inteiraG99G99exibe o separador de grupo na posioLL999exibe o smbolo da moeda local, .99.99,9exibe virgula e ponto nas posiesV99V99multiplica o valor por 10n (valor apos o V)EEEE9.99EEEE exibe o numero o notao cientificaRNRNexibe o numero em romano (ate 3999)DATEDATEexibe a data no formato MM/DD/YY

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao de DatasPara formatar as datas:COLUMN Aniversrio FORMAT A9;

    Para alterar o formatao do tipo data: Alter Session SET NLS_DATE_FORMAT = 'DD-MM-YYYY';Um exemplo de formato : DD-MON-YY HH24:MI:SSNLS: National Language Standards.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Formatao de DatasSQL> alter session set nls_date_format = 'dd-mm-yyyy hh12:mi:ss';Session altered.

    SQL> select sysdate from dual; SYSDATE-------------------10-05-2002 12:35:15

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Copia dos AtributosCopiando as configuraes dos atributos de uma coluna para outra pode ser uma soluo interessante quando queremos definir colunas de mesmo tipo: COLUMN TOT LIKE SAL; mas preciso mudar o heading COLUMN TOT LIKE SAL HEADING Total;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*AlinhamentoPodemos modificar o tipo da visualizao dos ttulos:

    COLUMN SAL JUSTIFY Center; COLUMN SAL JUSTIFY LeftCOLUMN SAL JUSTIFY Right;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ExemplosCOLUMN NomePil FORMAT A30 HEADING 'NOME PILOTO' TRANCATED JUSTIFY CENTER

    COLUMN Sal FORMAT $9,999.99 HEADING 'Salrio' JUSTIFY CENTER

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Resetar os Atributos Para mostrar os atributos atuais de uma coluna: COLUMN nome_coluna Para mostrar todas as colunas e seus atributos: COLUMN Para resetar os atributos de uma coluna (voltar ao modo por default):COLUMN nome_coluna CLEAR;Para resetar todas as colunas: CLEAR COLUMNS ; este comando geralmente colocado no incio de cada script Para ativar/desativar a formatao temporariamenteCoulmn nome_coluna ON/OFF

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Outras Opes de FormataoTTitle permite a formatao de um ttulo para o relatrio.BTitle permite a formatao de um rodap para o relatrio.Break permite a criao de quebras no relatrio.Compute permite fazer clculo na quebra. Clear Limpa o contedo das opes Break, Columns, Compute, etc.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*TTitle Relao dos Alunosdo Curso de InformticaPgina: 1

    CPDNOME------------------------------------------ Joo Maria Rodrigo

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*TTitleExemplo: Ttitle CENTER 'Relao dos Alunos' SKIP 1- CENTER 'do Curso de Informtica' RIGHT- 'Pgina: ' FORMAT 99 SQL.PNO SKIP 2

    Select CPD, NomeAlFrom Alunos Where CodCurso= 'Informtica';

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*TTitleParmetros do Ttitle:COLColuna em que comea a exibio.LE[FT]Alinha a esquerda.R[IGHT]Alinha a direita.CE[NTER]Centraliza o texto.TABSalta uma Tabulao.FOR[MAT]Formato do valor/texto a exibir.S[KIP]nEscapa n linhas linhas.ON | OFHabilita ou no, temporariamente, a exibio do Ttulo.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*PROMPT e ACCEPTExemplo: SQL> INPUT 1 PROMPT Entre com o Ttulo do Relatrio. 2 ACCEPT MeuTtulo PROMPT 'Ttulo: ' 3 TTITLE LEFT MeuTtulo SKIP 2 4 SELECT * FROM DEPT 5 SQL> SAVE arq1 arquivo criado arq1Este significa que o resultado do comando select teria um ttulo especificado pelo usurio.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ACCEPT e as User variablesO SQL*Plus gera automaticamente um prompt para as variveis de substituies. Mas este pode ser personalizado combinando o prompt e accept: Exemplo: 1 PROMPT Entre o cdigo do produto2 PROMPT (entre 100 e 999) 3 ACCEPT cod NUMBER PROMPT 'Cdigo: ' 4 SELECT * 5 FROM Produto 6 WHERE CodProd = &cod;Observe que o comando Accept executado vrias vezes at que o usurio entre com um valor do tipo indicado.Par ler um String, este deve ser entrado entre aspas simples.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*BTitleO BTitle defina um ttulo de rodap. Ele tem os mesmos parmetros que o TTitle.Exemplo:Ttitle 'Produtos de Informtica' BTitleLeft 'Fim do Relatrio. 'Select * From Produtos Where Categria = 'Informtica'

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*BreakPermite criar quebra de linhas baseada em um coluna no relatrio entre agrupamentos de valores.Parmetros do Break:BRE[AK] ON[nome coluna] coluna para quebrarSKI[P] n nmero de linhas para saltarSKI[P] PAGE indica o salto de uma pgina NODUP[LICATES] | DUP[LICATES]defina se a coluna de quebra seja ou no repetida.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*BreakBREAK ON CodCurso SKIP 1SELECT CPD, NomeAl, CodCur FROM CLIENTES;CPDNomeAlCodCur101CarlosINF102Joo103MariaCOM104Rodrigo105Joo

    106RobertaDIR

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ComputePermite fazer clculo na quebra aplicando um operador agregado encima de cada grupo (cada quebra).Funciona junto com o Break. Os dois devem ter o mesmo parmetro ON.

    COMP[UTE] funo agregada OF nome da coluna a computar ON nome da coluna de quebra (no break)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ComputeExemplo:Break ON CodDept Skip 1

    Compute SUM OF Salario ON CodDept

    Select * From Funcionarios;

    Acrescentaria uma coluna SUM onde vai ser mostrado a soma dos salrios por departamento (por cada grupo da quebra).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ComputeFunes usadas:AVGCOUNTMINMAXSUMNUMBER conta as tuplas (com os valores nulos)VARIANCE

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ClearLimpa o contedo de opes como Break, Columns, Compute.Exemplo:Clear ColumnsClearColumn Breaklimpa as opes de colunas e de break.(o clear screen limpa a tela).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Personalizar o Ambiente SQL*PLUSLOGIN file set time on/offmostra o tempo antes do promptSet pause on/off obriga uma parada a cada pgina de sada. set pause textoexibi o texto a cada pausa.set pagesize nespecifica o nmero de linhas em uma pginaSet compatibility v7 permite de compatibilizar com verses anterioresset numformat fespecifica o formato por default para imprimir os valores numricos no resultado de uma query (exp. $99,999)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Outros Comandos teisPara mandar uma mensagem ao usurio e aceitar um [Enter] para continuar.PROMPT Prepare o seu CPF,PROMPT antes de continuar.PAUSE Aperta ENTER para continuar...

    Para limpar a tela antes de imprimir algo:Clear Screen Para cancelar os formatos anteriores:Clear Columns

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes ComunsDual uma tabela especial do Oracle, usada para permitir operaes matemticas e outras sobre dados selecionados a partir de uma tabela e/ou nmeros e datas.A Tabela Dual composta por uma linha e uma coluna. Ela complementa a semntica do select quando queremos fazer operaes desse tipo.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect SysDate From Dual;

    SysDate -------------- 10/05/02

    Select SysDate "Data Atual" From Dual;

    Data Atual -------------- 10/05/02

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleAritmtica:

    Select 8+7 From Dual;

    8+7------ 15

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleTo_Char converte nmeros ou datas em caracteres geralmente para formatao da sada.

    Select To_Char (data[,formato]) From Dual;

    Select To_Char (nmero[,formato]) From Dual;

    Select To_Char (dt_nascimento,'"Nascido em: " DD/MM/YYYY') "NASCIMENTOS" From Clientes;

    NASCIMENTOS-------------------------Nascido em 14/02/2001Nascido em 20/08/1970

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect To_Char (dt_nascimento,'"Nascido em: " DD " de " MONTH " de " YYYY') "NASCIMENTOS" From Clientes;NASCIMENTOS-------------------------Nascido em 14 de Fevereiro de 2001Nascido em 20 de Agosto de 1970 Select Nome_Prod || ' ' || To_Char (Preco, '$9,999.99') "PREO" From Clientes;PREO-------------------------$ 25.20$ 300.51

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleInsert into Pessoa (nome,data_nasci,Codigo) values('Maria', To_Date('20/01/2001', 'dd-mm-yyyy'),2541) To_Number(char) Select To_Number('2,2843', '9,999.9') from Dual;2284.3OBS. Veja tabela de formatao. O segundo atributo (o formato) no obrigatrio.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect ASCII('%') a, ASCII('D') d From Dual;A D--------------37100

    Select CHR(37) a, CHR(100) b From Dual;AD----------%d

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect Concat('Carlos ', 'Alberto') "Nome Completo" From Dual; Nome Completo-----------------------Carlos Alberto

    O concat s aceita dois argumentos.

    Select Ename || ' trabalha ' || ' como ' || Job From Emp; Ename || ' trabalha ' || ' como ' || Job --------------------------SMITH trabalha como CLERKALLEN trabalha como SALESMAN...

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect InitCap('carlos albErTo') "Nome Completo" From Dual; Nome Completo-----------------------Carlos Alberto

    Select INSTR('Carlos', 'Carlos') From Dual; -- retorna 1 ou 0 INSTR('Carlos', 'Carlos') -------------------------------- 1

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect Upper('carlos albErTo') "Nome Completo From Dual; Nome Completo---------------------------- CARLOS ALBERTO

    Select Lower('carlos albErTo') "Nome Completo" From Dual; Nome Completo-----------------------carlos alberto

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect LPAD('Carlos Alberto',30) "Nome Completo" From Dual; Nome Completo--------------------------------------------------- Carlos Alberto

    Select RPAD('aaa bbb ',12, '-') "Nome Completo" From Dual; Nome Completo----------------------- aaa bbb ----Select RPAD (Nome_Pessoa,50) From Pessoa;

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect LTRIM(' Carlos Alberto ') "Nome" From Dual;Nome-------------------Carlos Alberto

    Select RTRIM(' Carlos Alberto ') "Nome" From Dual;Nome-------------------Carlos Alberto

    RTRIM('AABBCC', 'CC') -> AABBLTRIM('AABBCC', 'AA') -> BBCC

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleUma nova funo TRIM no Oracle 8i permite de substituir a combinao de LTrim e RTrim

    Select TRIM(' Carlos Alberto ') "Nome From Dual;Nome-------------------Carlos Alberto

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect REPLACE('aaa bbb ccc', 'bbb', 'eee') "Novo Nome" From Dual; Novo Nome----------------- aaa eee ccc

    Select SUBSTR('aaa bbb ccc', 3, 5) "Nome" From Dual; Nome-------- a bbbObs. Caso o terceira argumento (tamanho) omitido, retornada a substring que vai at o fim da palavra.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect LENGTH('Oracle') "Tamanho" From Dual;Tamanho------------ 6

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect USER From Dual; USER----------- labidi

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect NomeFuncionario, SAL + Gratificacao From Funcionrios; Caso uma das colunas nula (NULL), a soma no vai ser possvel e o resultado seria nulo.Para contornar este problema, usa-se a converso com NVL:

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect NomeFuncionario, SAL + NVL(Gratificacao,0) From Funcionarios;Caso a gratificao nula (no informada), ela ser considerada como zero e a soma vai sempre puder ser feita. Outros exemplos de converso:NVL (DATA, 01-JAN-02)NVL (NOTA,0)NVL (ENDERECO, ENDERECO NA INFORMADO)

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect PilNum || PilNome PILOTOS From Pilotos;

    PILOTOS----------12JOAO14CARLOS15ROBERTA16MARIA20DJALMA

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleFunes Matemticas:Abs(x)Valor Absoluto.Ceil(x)Redundar para cima.Floor(x)Redundar para baixo.Trunc(x)Retira a parte decimal.Mod(x,y)Mdulo.Round(x,y)Redundar para preciso y.Sign(x)Retorna o sinal de x: -1, 0, ou 1.Power(x,y)X Potncia Y.Sqrt(X)Raiz quadrado.Sin, Cos, TanFunes Trigonomtricas.Vsize(x)Tamanho, em byte, do armazenamento da varivel/coluna x.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect TRUNC(6.47) "Inteiro" From Dual;Inteiro-------- 6 Select ROUND(6.47,1) "Decimal" From Dual;Decimal----------- 6.5 Select POWER(9,2) "Calculo" From Dual; Calculo----------- 81Select VSIZE(SYSDATE) Tamanho From Dual; Tamanho ----------- 8

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleFunes de Listas:Greatest(x,y,...)Retorna o maior da lista.Least(x,y,...)Retorna o menor da lista.

    Select Greatest (2,4,8,2,1) From dual; GREATEST(2,4,8,1,5) ----------------------------- 8Select Least(2,4,8,2,1) From dual; GREATEST(2,4,8,1,5) ----------------------------- 1

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleFunes de Datas:SysdateRetorna a data de hoje (sistema).Add_months(x,y)Retorna uma nova data adicionando y meses data x.Last_day(x)Retorna a data do ltimo dia do ms x.Months_between(x,y) Retorna o nmero de meses entre x e y (x-y). Valor decimal.New_time(x,y,z)Retorna a data e tempo correspondente data x na zona de tempo y como deveria ser na zona z.Next_day(x,y)Retorna a data do prximo dia y aps a data x.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect ADD_MONTHS('30/12/00',2) "Nova Data" From Dual;Nova Data---------------28/02/01

    Select MONTHS_BETWEEN('28/02/01', '01/02/01') "Diferencia" From Dual;Diferencia-------------- ,87096774

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect NEXT_DAY('11-02-01','sexta-feira') "Prximo Dia" From Dual; Prximo Dia----------------- 16/02/01

    Select LAST_DAY('01/02/01') "ltimo Dia" From Dual;ltimo Dia-------------- 28/02/01

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect TO_DATE('15-02-01') "Data" From Dual; Data ----------- 15-02-01

    Select to_date('2-03-01') - to_date('15-02-01') "Diferencia" From dual;Diferencia------------- 15

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect Trunc(Sysdate,'MM') "Data Truncada" From Dual; Data Truncada -------------------- 01-MAY-02

    Select Trunc(Sysdate, 'YY') "Data Truncada" From Dual; Data Truncada -------------------- 01-JAN-02

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect Trunc(To_Date('08-JUN-02'),'MM') "Data Truncada" From Dual; Data Truncada -------------------- 01-JUN-02

    Select Trunc(To_Date('08-JUN-02'), 'YY') "Data Truncada" From Dual; Data Truncada -------------------- 01-JAN-02

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect Round(To_Date('08-MAY-02'),'MM') "Data Redundada" From Dual; Data Redundada -------------------- 01-MAY-02

    Select Round(To_Date('18-MAY-02'), 'MM') "Data Redundada" From Dual; Data Redundada -------------------- 01-JUN-02

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect Round(To_Date('08-MAY-02'),'YY') "Data Redundada" From Dual; Data Redundada -------------------- 01-JAN-02

    Select Round(To_Date('18-SEP-02'), 'YY') "Data Redundada" From Dual; Data Redundada -------------------- 01-JAN-03

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleNew_Time

    alter session set nls_date_format = 'dd-mm-yy hh:mi:ss'; Select new_time('10-12-01 1:00:00','GMT','EST') from dual;

    NEW_TIME('10-12-0----------------------------09-12-01 08:00:00-- outra zona: ASTObs. Por default o horrio no modo 12h. Seno precisa colocar 24 logo colado HH no formato (24).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Convenes de Formatao de DatasDDO dia do ms em dois dgitos: 6, 25.DY As trs primeiras letras do dia: QUI.DAYO dia da semana em completo: Quinta-feira.MMO ms em nmero de 1 a 12.MONO ms em trs letras: JAN, ABR.MONTHO ms em inteiro: Janeiro, Abril.YYO ano em dois dgitos: 02.YYYYO Ano em completo: 2002.RRO ano em dois dgitos levando em conta o milnio.RRRRO ano em completo levando em conta o milnio.HHA hora no formato AM/PM.HH24A hora no formato 24h.MIOs minutos em dois dgitos.MIAMOs minutos em dois dgitos no formato AM/PM.SSOs segundos em dois dgitos: 59.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ObservaoJ que Oracle grava data e tempo juntos. Isto pode causar problemas, principalmente, quando queremos comparar datas.Para resolver isto, usar as funes trunc() com to_char() e to_date().

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleA funo decode:Decodifica um atributo.Select ename || ' um ' || decode(Job,'ANALYST', 'Analista', 'SALESMAN', 'Vendedor', 'Outro') AS "Em Portugus" From Emp; Em Portugus---------------------------------SMITH um OutroALLEN um VendedorWARD um VendedorJONES um OutroMARTIN um VendedorCLARK um OutroSCOTT um AnalistaKING um Outro

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleSelect NomeCli "Nome do Cliente" decode(Sexo,'M','Masculino', 'F', 'Femenino') "Sexo" From Clientes; Nome do ClienteSexo---------------------- -----------MariaFemininoJooMasculino CarlosMasculinoRobertaFemininoRodrigoMasculino

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleFunes de Converso:to_char(x)Converte um valor x para caractere.to_number(x)Converte um no numrico para um mum.to_date(x[,y])Converte x para uma data, no formato y.to_multi_byte(x) Converte um string x single byte caracteres para multibyte caracteres de acordo com NLS.to_single_byte(x) Converte multibyte caracteres x para single byte caracteres.chartorowid(x)Converte strings para rowid.rowidtochar(x)Converte rowid para strings.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Funes mais comuns do OracleFunes de Converso:HexToRaw(x)Converte hexadecimal (base 16) para raw format (binrio).RawToHex(x)Converte um valor binrio x para um hexadecimal.convert(x[,y[,z]]) Executa uma converso de um string alfanumrico dor formato z para o formato y.translate(x,y,z)Converte um string, numrico, ou caracteres x por outro trocando os caracteres de y pelos correspondentes no z.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*ExemplosSelect to_char(234567.89,'999,999.99') From Dual;TO_CHAR(234-------------------- 234,567.89

    Select Translate(To_Char(23456.89, '999,999.99'), '., ', ',. ') From Dual;TRANSLATE(T-------------------- 23.456,89

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*SQL OracleBETWEEN .... AND ....Intervalo entre dois valores (inclusive)trabalho com nmeros, datas, e caracteres.IN (lista)Dentro do intervalo apresentado em (lista)LIKE string ou stringProcura um string igual ao informadoIS NULLValores Nulos NOT nome da coluna = Se a coluna for diferente deNOT nome da coluna > Se a coluna no for maior queNOT BETWEENNo estiver no intervaloNOT IN (lista)No estiver na lista fornecidaNOT LIKE stringNo for igual ao string informadoIS NOT NULL No for nulo

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*SQL OracleA and BA e B devem ser TrueA or BA ou B devem ser True

    SOUNDEXFuno especial usada para introduzir a Lgica Fuzzy quando se trata de uma comparao de strings permitindo uma comparao baseada sobre a similaridade de pronuncia das palavras. ou != ou ^=No igual a (diferente de)

    Observe-se que a sada de uma funo SQL pode ser uma entrada para uma outra funo.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Resumo sobre comandos SQL*PlusAmbienteAfeta o comportamento geral dos comandos SQL na sesso FormataoFormata o resultado de query Manipulao de ArquivosSalva, Carrega e Executa arquivos de Script ExecuoEnvia comandos SQL e PL/SQL do buffer SQL ao Oracle Server

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Resumo sobre comandos SQL*PlusEdio Modifica comandos SQL no buffer InteraoPermite ao usurio criar e passar variveis a comandos SQL, imprime variveis e imprime mensagens na tela DiversosComandos diversos para conectar-se ao banco de dados, manipular o ambiente SQL*Plus e mostrar definies de colunas

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Oracle Navigator

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Personal OraclePersonal Oracle uma verso desktop do SGBD Oracle. Ele tem as mesmas funcionalidades que o Oracle para sistemas de grande porte (mainframe, etc.) s que ele no funciona no modo cliente/servidor.As aplicaes desenvolvidas com o Personal Oracle so compatveis com as outras plataformas Oracle.A interface grfica do Personal Oracle chamada Personal Oracle Navigator.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Componentes do Personal Oracle Oracle8 DBMS Fornecendo funes avanadas como a distribuio e o espelhamento do BD.Personal Oracle8 Navigator a GUI permitindo de navegar, criar, e modificar os objetos do BD.SQL*Plus uma interface de linguagem de comandos que permite de usar SQL e PL/SQL em um ambiente Windows.SQL*Net - (Oracle network interface) Permite s aplicaes front-end de rodar em uma estao cliente para acessar, modificar, compartilhar, e armazenar dados nos servidores Oracle usando basicamente os protocolos TCP/IP, SPX, e Named Pipes.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Componentes do Personal OracleOracle8 Utilities Este produto inclui ferramentas de importao, exportao, e o SQL*Loader. A Exportao copia dados de um BD Oracle para um arquivo do sistema operacional para arquivamento, transferncia, ou restaurao de dados. A Importao leia dados a partir de arquivos exportados para o DBMS Oracle. O SQL*Loader permite de carregar dados a partir de fontes de dados externas (ASCII, etc.) para o Oracle.Call Interface (OCI) uma API (applications programming interface) para acessar um BD Oracle a partir de um programa C

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Oracle Navigator uma ferramenta, do Personal Oracle, permitindo de criar e acessar (atualizar) os: Projetos do BD;Objetos do BD; e asConexes do BD. a primeira tela do PO. O Oracle Navigator pode ser considerado como um Oracle Explorer.Os objetos podendo ser visualizados por tipo (Table, Views, Synonyms, etc.) ou por owner proprietrios (Scott, Labidi, etc.).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Oracle Navigator

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Personal Oracle O Personal Oracle caracterizado por: Dados de DemoSo os objetos do BD que so accessveis ao se conectar ao BD Local. Tais objetos podem ser copiados e usados em aplicaes especficas.Para se conectar ao BD Local e os acessar clicar duas vezes em Local Data Base. Projetos Os projetos permitem de agrupar os objetos de um BD para uma aplicao ou uso especficos.Por exemplo, um projeto Clientes pode agrupar, por copia ou criao, vrios objetos relacionados aos clientes (tabelas, views, snapshops, forms, ponteiros a arquios externos, etc.).

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Oracle NavigatorProjects Correspondendo ao n onde so agrupados, para efeito de transferncia (exportao para um Servidor Oracle), todos os objetos de banco de dados. Local DatabaseCorresponde ao n que agrupa todos os objetos do BD atual. Database Connection Agrupa os links possveis para os gerenciadores externos do ambiente local.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Starter Database o BD por defaut, ao qual podemos se conectar ao clicar em Local database dentro do Navigator.

    Mas podemos se conectar a outros BD, por exemplo BD remotos.

    Prof. Dr. Sofiane Labidi

  • Prof. Dr. Sofiane Labidi*Startar/Fechar o BDPor default, o BD aberto na hora do acesso ao BD Local, e fechado quando o usurio faz um log-off ou sair do Windows. Mas, podem ser definidos outros modos de iniciar o BD:Startar o BD ao Startar o Windows;Startar e fechar Manualmente;Habilitando e desabilitando o StartUp Automtico.

    Prof. Dr. Sofiane Labidi