Compatibilidade com SQL no DB2 9.7

Aprimoramentos de acionadores a objetos: Uma demonstração dos novos recursos de compatibilidade do Oracle.

Aprimoramentos de acionadores a objetos, este artigo apresenta uma demonstração dos novos recursos de compatibilidade do Oracle no DB2 9.7.

Anil Mahadev, Independent Consultant and DB2 User, Freelance Consultant

Anil Mahadev is a DB2 user who has written many articles on DB2 with .NET, one of which was published in DB2 Magazine Q3 2005. He became the world's first featured contributor to the IBM DB2 Express-C web site forums and is also the Lead Logo Architect of the DB2 India User Group, an independent, not-for-profit user group at http://www.db2india.org. He contributes to the DB2mag Wiki. and has recently been appointed as the IDUG INDIA FORUM 2008 Volunteer by IDUG.



30/Jun/2009

Convocação a todos os desenvolvedores! Possui qualificações no banco de dados Oracle? Gostaria de reutilizar o seu conhecimento de PL/SQL e código em outra plataforma de banco de dados?

O IBM DB2 para Linux, UNIX e Windows (LUW) passou por uma remodelação. Centrado nas necessidades atuais e futuras dos clientes, no que se refere a aprimoramentos com economia de custos, o último release, DB2 9.7, apresenta um host de novas tecnologias em áreas familiares como autonomização (autogestão) e Deep Compression (consulte "DB2 9.7: Tudo na Ponta do Lápis", nesta edição). Mas, o ponto alto é a coleção de recursos focada na compatibilidade com SQL. Esses recursos tornam o DB2 mais fácil de ser adotado como software de banco de dados, de modo que você possa tirar proveito das suas características de alto desempenho e economia de custos, mesmo se estiver mais familiarizado, no momento, com bancos de dados concorrentes.

Neste artigo, apresentaremos exemplos de vários novos recursos de compatibilidade com SQL no DB2 9.7. Iniciaremos com os acionadores e os novos tipos de dados, passaremos pelo o suporte a Oracle SQL e PL/SQL, e concluiremos com uma descrição dos aprimoramentos nos objetos e simultaneidade. Todo mundo ganha quando o DB2 "torna-se compatível".

Para iniciar, conecte-se à janela Command Line Processor Plus (CLP Plus), veja a Figura 1, e substitua "db2admin" pelas credenciais de login escolhidas:
clpplus db2admin@localhost:50000/sample

Compatibilidade com SQL

O primeiro passo na utilização dos recursos de compatibilidade com SQL no DB2 9.7 é ativar o parâmetro DB2_COMPATIBILITY_VECTOR. A definição de db2set DB2_COMPATIBILITY_VECTOR=ORA ativa os recursos de compatibilidade com SQL relacionado a Oracle para toda a criação de banco de dados subsequente. Para obter uma explanação de alguns dos parâmetros mais importantes usados pelo DB2_COMPATIBILITY_ VECTOR, consulte Tabela 1.

Para ativar esse recurso, é necessário ter privilégios administrativos. Insira os comandos a seguir na janela de comandos do DB2:

db2set DB2_COMPATIBILITY_VECTOR=ORA
db2stop
db2start

Para criar um banco de dados simples, digite: db2 create database [dbname]. É possível, então, conectar-se ao banco de dados, digitando:
db2 connect to [dbname];

A próxima etapa é criar tabelas usando os tipos de dados do Oracle. Insira a instrução CREATE TABLE a seguir usando a janela CLP Plus ou IBM Data Studio:
Create table employee (EMPNO NUMBER(5), ENAME VARCHAR2(50), DEPTNO NUMBER(5))

Figura 1: No DB2 9.7, a interface CLP Plus permite que você experimente os recursos de compatibilidade com SQL.
Figure 1: In DB2 9.7, the CLP Plus interface allows you to try out the SQL compatibility features.

Recursos do PL/SQL

Agora, examinaremos os recursos que permitem a criação de procedimentos PL/SQL. O DB2 9.7 tem suporte para:

  • Pacotes definidos pelo usuário
  • Blocos de procedimentos/funções/anônimos do PL/SQL
  • Pacotes integrados (DBMS_OUT.PUT_LINE, DBMS_PIPE, DBMS_UTL etc)
  • Matrizes associativas (INDEX BY)
  • Varrays
  • Acionadores
  • %ROWTYPE
  • %TYPE
  • EXCEPTIONS
  • Cursores de Referência

Observe que o suporte para PL/SQL está disponível apenas no Enterprise Server Edition e Workgroup Edition do DB2 9.7 para LUW. Não há suporte para PL/SQL no DB2 Express-C, DB2 Express ou DB2 Personal Edition.


Procedimentos do PL/SQL no DB2

O DB2 tem suporte para boa parte da linguagem PL/SQL. Vamos ver como isso funciona com algumas amostras de código. Depois de compilado e executado, este procedimento do PL/SQL exibe uma mensagem de boas-vindas para o usuário. Para ver a saída no console, envie antes o comando SET SERVEROUTPUT ON.

CREATE OR REPLACE PROCEDURE message_proc (myname varchar2)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Bem-vindo ao DB2 9.7 ( )! ' || myname
|| '. Agora tem suporte também para ORACLE SQL e PL /SQL :-)!');
END message_proc;

Para chamar esse procedimento do PL/SQL no DB2, envie os seguintes comandos:

EXEC proc_name
EXEC message_proc('Anil');

Este é um exemplo que usa um loop FOR:

BEGIN
FOR a IN 10 .. 20 LOOP
DBMS_OUTPUT.PUT_LINE('Contador ' || a);
END LOOP;
END;

Este loop produzirá a seguinte saída:

Contador 10
Contador 20


O comando Truncate Table

Vocês com experiência no banco de dados Oracle, é bem provável que já tenham usado o comando TRUNCATE TABLE em algum momento das suas carreiras. Agora, o DB2 também apresenta suporte para esse comando. O código a seguir cria uma tabela de dados simples, adiciona linhas e usa o comando TRUNCATE para remover todas as linhas da tabela:

CREATE TABLE CLIENTS
(CLIENTID NUMBER(5) PRIMARY KEY NOT NULL,CLIENTNAME
VARCHAR2(50));

Insira algumas linhas:

INSERT INTO CLIENTS (CLIENTID, CLIENTNAME) VALUES (1,'IBM');
INSERT INTO CLIENTS VALUES (2,'MSFT');
INSERT INTO CLIENTS VALUES (3,'EDB');

Tabela 1: Valores DB2_COMPATIBILITY_VECTOR
Table 1: DB2_COMPATIBILITY_VECTOR values

Vamos examinar as linhas:

SELECT * FROM CLIENTS;

Agora, emita o seguinte comando para truncar as linhas:

TRUNCATE TABLE CLIENTS;

Vamos comprovar que elas se foram:

SELECT * FROM CLIENTS;

Você obterá zero linhas exibidas.


Aprimoramentos de objeto e simultaneidade

Para encerrar, observe dois aprimoramentos importantes no DB2 9.7 que podem significar economia de tempo e aumento de desempenho: validação do primeiro uso e o novo estado de bloqueio padrão.

Validação do primeiro uso
Sempre que objetos subjacentes do banco de dados (tabelas, visualizações, procedimentos, funções etc) forem alterados, na próxima vez que o objeto for recuperado com seus objetos dependentes, ele será automaticamente revalidado. Isso, definitivamente, significa economia de tempo para os desenvolvedores de aplicativos. A verificação de dependência automática será realizada sempre que o objeto for alterado.

Leitura confirmada no momento (padrão no DB2)
Nos releases anteriores do DB2, não era possível que um usuário tentasse ler e outro tentasse editar a mesma linha, ao mesmo tempo. Isso se baseia no princípio de que os leitores aguardam o resultado das edições pendentes. O DB2 9.7, agora, usa o estado de bloqueio padrão; assim, os leitores não mais esperarão pelo resultado de uma edição pendente. Em vez disso, eles lerão a versão da linha confirmada no momento. Assim, leitores não bloqueiam editores, e vice-versa.

Fiquei muito impressionado com os novos recursos de compatibilidade com SQL. Neste arquivo, só foi possível dar uma rápida pincelada. Fica o encorajamento para conhecer mais de perto o DB2 9.7. Você não ficará desapontado!


Recursos

Informações gerais sobre o IBM DB2

Tecnologias futuras do DB2

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=413642
ArticleTitle=Compatibilidade com SQL no DB2 9.7
publish-date=06302009