Novidades para desenvolvedores no Oracle 11g - Parte 2
Este artigo demonstra de forma resumida as principais novidades das linguagens SQL e PL/SQL que surgiram na versão 11g do banco de dados voltadas principalmente para desenvolvedores, administradores ou operadores de dados que necessitam utilizar de forma eficiente os novos recursos do Oracle.
Em que situação o tema é útil
Conhecer as novidades introduzidas na versão 11g do principal banco de dados do mercado torna-se um diferencial a profissionais que desejam destaque e oportunidades no mercado de trabalho, além de uma reciclagem na preparação para provas de certificação na nova plataforma.
Resumo DevMan
O artigo destaca as novidades da linguagem SQL do Oracle 11g, a saber: facilidades do SQL*Plus, possibilidade de alterar um database link, versionar objetos do banco de dados, nova opção no comando audit, novas funções listagg() e nth_value(), cache de comandos SQL, extensões do comando select que facilitam o dia-a-dia, tabelas read only, índices invisíveis, colunas virtuais e muito mais. Já na linguagem PL/SQL, as novidades ficam por conta dos novos tipos de dados, novas packages, triggers compostas, facilidades na linguagem, ordenar a execução de triggers e a evolução do compilador.
Desde seu lançamento comercial em 1979, a cada nova versão do banco de dados Oracle, comunidades de DBAs e desenvolvedores do mundo todo ficam antenados para conhecer os novos recursos que facilitam as tarefas de planejar e manter aplicações em ambientes complexos com necessidades crescentes de performance, escala e segurança.
A primeira versão do Oracle 11g foi lançada em 2007 e atualmente está em sua release 2, comercializada nas edições Enterprise, Standard e Standard Edition One. Além das versões pagas, a Oracle possui também uma edição gratuita, conhecida como Oracle Express Edition, que se limita a utilizar 1 CPU, 1GB de memória RAM e tamanho máximo do banco de dados de 4GB.
Todas estas versões podem ser baixadas gratuitamente através do site download.oracle.com para a finalidade de desenvolvimento e teste de aplicações, conforme termos descritos na Oracle Technology Network Developer Licence Terms, cujo conteúdo pode ser acessado através do endereço listado na seção Links.
Neste artigo, vamos analisar as principais novidades da linguagem SQL e PL/SQL introduzidas nas versões 11g e 11gR2 do banco de dados Oracle, voltadas principalmente para desenvolvedores e operadores que necessitam dominar os novos recursos visando alcançar soluções eficientes, flexíveis e seguras.
Novidades na SQL
Antes de iniciarmos com as facilidades da linguagem SQL introduzidas na versão 11g, vale lembrar que agora a ferramenta SQL*Plus apenas será distribuída em uma versão de linha de comando. Tanto o iSQL*Plus quanto o SQL*Plus para Windows foram descontinuados a partir da versão 11g. O substituto, denominado Oracle SQL Developer, pode ser encontrado nas instalações do Oracle 11g, bem como está disponível para download no site da Oracle.
SQL*Plus
Mesmo com outra ferramenta de interação com o banco de dados em destaque na versão 11, a Oracle incluiu na ferramenta SQL*Plus os seguintes comandos:
• SET EXITCOMMIT: que permite desativar o comportamento padrão do commit ao sair da ferramenta;
• SET ESCCHAR: utilizado para definir um caractere especial (@, ?, &, %) a ser utilizado como parte do nome do arquivo ao executar arquivos de script ou gravar resultados via SPOOL;
• SET ERRORLOGGING: grava os erros retornados por comandos SQL, PL/SQL ou SQL*Plus em uma tabela chamada SPERRORLOG, que é criada automaticamente no schema corrente.
Veremos a seguir alguns comandos SQL da versão 11g que trouxeram novos recursos ou mesmo facilitaram algumas rotinas no dia-a-dia.
Alter Database Link
Agora podemos alterar a senha de autenticação de um database link sem a necessidade de recriá-lo, como ocorria nas versões anteriores. A partir desta versão, podemos utilizar o comando alter database link informando as novas credenciais conforme o exemplo a seguir:
SQL> ALTER DATABASE LINK bd11g CONNECT TO usuario IDENTIFIED BY novasenha;
Create Edition
Objetos PL/SQL, views e synonyms agora podem ser versionados no banco de dados Oracle 11g através do recurso conhecido como Edition-Based Redefinition. Dessa forma podemos atualizar objetos de uma aplicação sem a necessidade de torná-la indisponível, alterando a estrutura de componentes como procedures, functions, packages ou views de um schema em uma área isolada conhecida como Edition, permitindo a realização de testes antes de tornar as modificações visíveis a todos os usuários do banco de dados.
Uma Edition corresponde a uma área rotulada que permite a criação ou modificação de objetos de um schema com visibilidade limitada a este espaço de trabalho. Além disso, é possível alternar entre as Editions existentes em um banco de dados Oracle que, por padrão, possui habilitado a Edition ORA$BASE. Na Listagem 1 veremos o uso deste recurso criando diferentes versões de uma mesma view em um mesmo schema do banco de dados.
Listagem 1. Exemplo do uso de Edition Based Redefinition.
SQL> ALTER USER sqlmag ENABLE EDITIONS;
Usuário alterado.
SQL> CONNECT sqlmag/******
Conectado.
SQL> SELECT SYS_CONTEXT('userenv', 'current_edition_name') FROM DUAL;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
-----------------------------------------------------------------------------
ORA$BASE
SQL> CREATE EDITION teste_v1;
Edição criada.
SQL> CREATE EDITIONING VIEW v_cli AS SELECT codigo, nome FROM clientes;
View criada.
SQL> DESC v_cli
Nome Nulo? Tipo
----------------------------------------- -------- --------------------------
CODIGO NUMBER
NOME VARCHAR2(50)
SQL> ALTER SESSION SET EDITION=teste_v1;
Sessão alterada.
SQL> SELECT SYS_CONTEXT('userenv', 'current_edition_name') FROM DUAL;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
-----------------------------------------------------------------------------
TESTE_V1
SQL> CREATE OR REPLACE EDITIONING VIEW v_cli AS SELECT codigo, nome, telefone FROM clientes;
View criada.
SQL> desc v_cli
Nome Nulo? Tipo
----------------------------------------- -------- --------------------------
CODIGO NUMBER
NOME VARCHAR2(50)
TELEFONE VARCHAR2(20)
SQL> ALTER SESSION SET EDITION=ora$base;
Sessão alterada.
SQL> desc v_cli
Nome Nulo? Tipo
----------------------------------------- -------- --------------------------
CODIGO NUMBER
NOME VARCHAR2(50)
SQL> ALTER USER sqlmag ENABLE EDITIONS;
Usuário alterado.
SQL> CONNECT sqlmag/******
Conectado.
SQL> SELECT SYS_CONTEXT('userenv', 'current_edition_name') FROM DUAL;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
-----------------------------------------------------------------------------
ORA$BASE
SQL> CREATE EDITION teste_v1;
Edição criada.
SQL> CREATE EDITIONING VIEW v_cli AS SELECT codigo, nome FROM clientes;
View criada.
SQL> DESC v_cli
Nome Nulo? Tipo
----------------------------------------- -------- --------------------------
CODIGO NUMBER
NOME VARCHAR2(50)
SQL> ALTER SESSION SET EDITION=teste_v1;
Sessão alterada.
SQL> SELECT SYS_CONTEXT('userenv', 'current_edition_name') FROM DUAL;
SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
-----------------------------------------------------------------------------
TESTE_V1
SQL> CREATE OR REPLACE EDITIONING VIEW v_cli AS SELECT codigo, nome, telefone FROM clientes;
View criada.
SQL> desc v_cli
Nome Nulo? Tipo
----------------------------------------- -------- --------------------------
CODIGO NUMBER
NOME VARCHAR2(50)
TELEFONE VARCHAR2(20)
SQL> ALTER SESSION SET EDITION=ora$base;
Sessão alterada.
SQL> desc v_cli
Nome Nulo? Tipo
----------------------------------------- -------- --------------------------
CODIGO NUMBER
NOME
Audit All Statements | In Session Current
A nova opção all statements do comando audit permite auditar todas as instruções executadas diretamente por determinado usuário, ignorando comandos emitidos por procedures ou functions PL/SQL. A outra novidade do comando audit está na cláusula in session current, que ativa a auditoria apenas para a conexão em andamento. Assim, quando o usuário abrir uma nova sessão com o banco de dados, nenhuma auditoria com esta opção estará ativa. Observe um exemplo na Listagem 2.
Listagem 2. Exemplo do comando audit in session current.
...
Confira outros conteúdos:
SQL SUM: somando os valores de uma...
SQL: INNER JOIN
SQL: Introdução ao Where
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.