You are on page 1of 32

Oracle e Delphi:

Uma viso geral do melhor dos bancos de dados

Se o leitor consultar as principais publicaes da rea de computao, ver que elas

so unnimes em apontar o Oracle como o melhor dos bancos de dados. Dentre os

motivos que fazem com que o banco tenha tal reconhecimento esto: segurana,

desempenho, alta capacidade de armazenamento, tolerncia falhas e os diversos

utilitrios inclusos.

Neste artigo teremos uma viso geral do banco de dados, suas

verses, features (destacando os que surgiram no ltimo release), necessidades de

hardware e um estudo sobre os diversos tipos de instalao, com algumas dicas

que julgamos importantes.

Para esses colunistas, o Delphi a melhor das linguagens, j que, dentre outras

vantagens, uma ferramenta de desenvolvimento verdadeiramente RAD, orientado

a objetos, possui dezenas de frameworks desenvolvidos e permite o uso de uma

srie de tecnologias.

Sendo assim, nada melhor do que unir o melhor dos dois mundos: banco de dados

e linguagem de programao. exatamente isso que este artigo mostra. Alm

disso, o artigo traz tambm um guia de como criar um banco de dados e uma srie

de comandos SQL exclusivos do Oracle. E finalmente, veremos como acessar o

Oracle a partir do Delphi.

O Oracle
No final da dcada de 70, o ento desconhecido Larry Ellison encontrou a descrio

de prottipo funcional de um banco de dados relacional. Nenhuma empresa de

tecnologia havia se empenhado em comercializar tal tecnologia, Ellison viu nesse

nicho de mercado uma oportunidade nica e da surgiu o Oracle.

Atualmente o Oracle est na verso 10g Release 2, com verses para os sistemas

operacionais Windows, Linux, Solaris, AIX e outros. O g (de 10g) uma

abreviao de grid, vrios servidores de pequeno porte compartilhando

processamento, atuando como se fosse um grande servidor (veja as vantagens

na Tabela1).

Servidores Separados Servidores Compartilhados

Altos custos dos componentes Baixo custo dos componentes

Configurado para o pico Capacidade por demanda

nico ponto de falha Tolerncia falhas

Difcil gerenciar Gerenciamento nico

Difcil alterao Flexvel

Tabela 1. Diferena entre servidores separados e servidores compartilhados


O Oracle traz consigo uma srie de ferramentas que implementam facilidades para

o desenvolvimento deData Warehouses, clusters de banco de dados, migrao e

outras funes que exigem elevado conhecimentos sobre banco de dados. Como

nosso foco em programadores e no em DBAs, a seguir apresentaremos

rapidamente quatro ferramentas que julgamos serem importantes no dia a dia dos

desenvolvedores.

Oracle HTML DB

Desenvolvida principalmente para que no-programadores, o que inclui DBAs,

possam desenvolver facilmente novas aplicaes de banco de dados usando apenas

o browser. O HTML DB na verdade um assistente que permite criar um banco de

dados e a aplicao completa de acesso a ele, sem usar uma linha de cdigo

sequer.

Um exemplo prtico: imagine que voc tenha uma planilha no Excel e queira levar

os dados para um banco de dados. Entre as opes mais comuns esto: fazer uma

conexo via ODBC, escrever um aplicativo que leia a planilha e inclua os dados no

banco ou exportar o arquivo para um formato qualquer (XML, CSV, TXT) e depois

importar para o banco via algum utilitrio qualquer. Seja qual for a opo, dar um

certo trabalho.

Com o HTML DB, tudo fica simplificado. Basta selecionar os dados no Microsoft

Excel, copiar (CTRL+C) e colar (CTRL+V) no HTML DB, confirmar os tipos de dados

das colunas, o nome da tabela e pronto. Alm disso, ainda possvel criar uma

aplicao Web completa para incluso/edio/excluso dos dados, consultas e

relatrios (incluindo grficos). Tudo isso, como j foi dito, sem uma linha de cdigo.

Se ainda estiver difcil de acreditar, assista a demonstrao da ferramenta (em


ingls) no

endereo:otn.oracle.com/products/database/htmldb/viewlets/htmldb_quicktour_vie

wlet.html.

O HTML DB no est presente em todas verses de instalao do Oracle, mas pode

ser baixado gratuitamente (a verso para Windows 32 tem 56 MB) no

endereo:www.oracle.com/technology/products/database/htmldb.

Transparent Data Encryption

O leitor j precisou escrever alguma funo no sistema, para criptografar um

campo de uma tabela no banco de dados? Acredito que sim, j que normalmente

isso utilizado em campos que guardam informaes como salrio e,

principalmente, senha. Com o Transparent Data Encryption (TDE) isso no se faz

mais necessrio.

O TDE permite proteger os dados, mesmo em bancos j criados, sem qualquer

mudana em sua aplicao. O TDE um sistema de criptografia baseado em

chaves, mas que no requer que os usurios ou aplicaes gerenciem a chave

criptogrfica.

A chave mestre gerada e armazenada em um mdulo externo seguro, como o

Oracle Wallet (outro aplicativo Oracle), com a opo de limitar o acesso aos dados

apenas para o administrador do sistema. Ou seja, a segurana melhorada porque

o acesso aos dados pode ser concedido a diversos administradores e eles no tero

acesso informao que foi protegida.


O TDE suporta diversos algoritmos de criptografia, entre eles o Data Encryption

Standard (Triple DES) e oAdvanced Encryption Standard (AES192, que usa chave

de 192 bits).

Windows .NET Integration

As verses do Oracle para Windows 2000, 2003 e XP incluem a opo de rodar

como um host externo processos escritos em qualquer uma das linguagens .NET

existentes, o que inclui obviamente o Delphi. possvel escrever procedimentos

e/ou funes em .NET e us-las no banco de dados atravs da linguagem PL/SQL

(que a linguagem de programao interna do Oracle).

XQuery

O XQuery uma linguagem otimizada para consulta a campos (colunas) cujo tipo

de dados XML. O Oracle possui um compilador nativo, o que faz com que

expresses de consultas escritas em XQuery sejam compiladas na mesma estrutura

das consultas escritas em SQL padro, o que garante maior performance. Com isso,

possvel procurar por informaes armazenadas em campos do tipo XML da

mesma forma como se ele estivesse num campo integer ou varchar.

Tipos de instalaes

O leitor pode optar por instalar o Oracle Database 10g Express Edition (leia o

quadro) ou o Oracle Database 10g Release 2. As duas verses podem ser baixadas

no endereowww.oracle.com/technology/software/products/database/oracle10g.

Este artigo trata da segunda opo, por ser ela a mais encontrada nas empresas.
Ao instalar o Oracle Database 10g Release 2, possvel escolher entre um dos

seguintes tipos: Enterprise Edition, Standard Edition, Standard One Edition ou

instalao Personalizada. A diferena entre elas est naTabela 2.

Verso Pblico Alvo O que instala?

Standard One Para empresas de pequeno porte Os mesmos recursos da instalao

ou para sistemas de Enterprise Edition, com exceo

departamentos. Somente pode ser doOracle Real Application Clusters.

licenciado em servidores com at Suporta somente um nico usurio

dois processadores. de desenvolvimento.

Standard Para empresas de pequeno a Conjunto de ferramentas de

mdio porte. Pode ser licenciado administrao, distribuio,

em servidores simples com at rplica, Web features, e

quatro processadores ou para um ferramentas que facilitam a

nico cluster de servidores com o construo de aplicaes crticas.

total de at quatro processadores

por cluster.

Enterprise Edition banco de dados desenvolvido A verso completa do banco de

para empresas com aplicaes de dados, incluindo todas as

misso crtica ou com grande ferramentas de administrao.

volume de dados. Possui Tambm permite instalar produtos


grandeperformance e alta usados para o desenvolvimento

disponibilidade, tanto emambientes deData Warehouse.

OLTP (on-line transaction

processing processamento on-

line de transaes) como em

ambientes OLAP (on-line analytical

processing- processamento

analtico on-line).

Tabela 2. Diferentes entre os tipos de instalao do Oracle

Oracle Database 10g Express Edition

O Oracle Database 10g Express Edition, tambm chamado de Oracle XE, a verso

gratuita para desenvolvimento e distribuio do Oracle. a aposta da empresa para

concorrer com o SQL Server Express Edition (verso gratuita do SQL Server),

PostgreSQL, Firebird e outros bancos de dados freeware.

Essa verso possui administrao facilitada, est disponvel apenas para Windows e

Linux e indicada para desenvolvedores, DBAs e empresas de pequeno e mdio

porte. O arquivo de instalao tem cerca de 150 MB. Entretanto, antes de escolher

o Oracle XE como o seu banco de dados, preciso ter cincia das suas limitaes:

- O tamanho da base de dados no pode ultrapassar 4 GB;

- O servidor deve ter no mximo 1 GB de memria;

- O servidor deve ter apenas um processador.


Os Mtodos de instalao

Alm dos tipos de instalao, existem dois mtodos de instalao: bsica e

avanada. Na verso Bsica(padro), o processo rpido e no requer muita

interao. Na verso Avanada preciso um maior conhecimento do banco, j que

ser necessrio configurar tarefas como:

Criar um banco de dados como parte da instalao ou instalar somente o

gerenciador do banco de dados. Caso queria instalar o banco de dados junto

instalao, voc pode escolher dentre os tipos:

o Finalidade Geral: cria um banco de dados para fins gerais;

o Processamento de transaes: cria um banco de dados inicial otimizado para

ser utilizado em aplicaes que utilizam uso intenso de transaes;

o Data Warehouse (DW): cria um banco de dados otimizado para aplicaes de

DW;

o Avanado: cria um banco de dados personalizado.

Especificar as opes de configurao do banco de dados, podendo escolher

o nome do banco de dados Global e o conjunto de caracteres utilizados;

Ativar ou no as notificaes por e-mail. Ativando o administrador pode

receber e-mails com informaes sobre backup, falhas, estouro da capacidade do

disco, entre outros;

Especificar as opes de armazenamento de arquivos do banco de dados:


o Sistemas de Arquivos: A Oracle recomenda, para obter organizao e

desempenho, instalar os arquivos e o software em discos separados. Nessa opo

voc pode especificar a localizao dos arquivos;

o Gerenciamento de Armazenamento Automtico (ASM - Automatic Storage

Management): simplifica a administrao do armazenamento. O Oracle se

encarrega de otimizar a forma como os dados so armazenados em disco,

melhorando assim o desempenho de armazenamento e recuperao das

informaes;

o Dispositivos Brutos: Nessa opo voc deve criar um dispositivo para cada

arquivo de dados, arquivo de log e controle, sendo necessrio especificar o arquivo

de mapeamento desses dispositivos.

Especificar as opes de backup e recuperao. Caso ativadas,

o Job de backup usar o armazenamento na rea de recuperao especificada na

opo Localizao da rea de Recuperao, ou ento, selecione a opo de

gerenciamento automtico. Uma vez ativadas as opes de backup e recuperao,

necessrio informar o usurio e senha para serem usadas pelo Job.

Nota: possvel permitir o backup automtico aps a instalao.

Especificar senhas do banco de dados: possvel selecionar diferentes senhas para

diferentes contas (SYS, SYSTEM, SYSMAN e DBSNMP) ou utilizar a mesma senha

para todas as contas.

Componentes de hardware requeridos


A Oracle recomenda instalar os componentes em sistemas de arquivos NTFS. Os

requisitos listados a seguir, so mais precisos que os valores informados pela

tela na hora da instalao. As exigncias de espao em disco para componentes do

banco de dados Oracle incluem 32 MB para instalar o Java

RuntimeEnvironment (JRE) e Oracle Universal Installer na partio onde o sistema

operacional instalado.

Para instalar o banco de dados preciso 256 MB de RAM (entretanto, use pelo

menos 512 MB), memria virtual com o dobro da quantidade de RAM, adaptador de

vdeo de 256 cores e processador de 1.200 GHz ou superior. O espao em disco

depende do mtodo de instalao (Bsica ou Avanada), utiliza cerca de 100 MB

para arquivos de sistemas, 1.5GB para o Oracle propriamente dito e 100 MB de

espao temporrio (se for FAT32 as exigncias so ligeiramente maiores).

Instalando o banco de dados Oracle

Mostraremos aqui alguns dos passos de instalao do Oracle 10g, para a

instalao Personalizada do mtodo Avanado. Insira o CD do produto, ou navegue

at o diretrio onde esto os arquivos de instalao, e inicie o processo.

Quando chegar na tela inicial de instalao, ser necessrio escolher o mtodo de

instalao: Instalao Bsica ou Instalao Avanada. Selecionando Instalao

Bsica o banco de dados ser instalado de forma mais rpida, pois requer uma

comunicao (usurio-mquina) mnima nos passos de instalao. Ser necessrio

informar apenas: se deseja criar o Banco de Dados inicial, o tipo de instalao e a

senha (nesse caso, a mesma senha ser usada para todas as contas).
A Instalao Avanada mais complexa e demorada, permite criar senhas

individuais para as diferentes contas, criar tipos especficos de bancos de

dados, utilizar diferentes grupos de idioma, especificar notificaes de e-mail, e

assim por diante. Selecione o tipo desejado e siga em frente (lembrando que

aqui optamos pelo mtodo Avanado).

Nota: Mesmo que o leitor escolha o mtodo de Instalao Bsica, aconselhamos

no criar o Banco de Dados Inicial junto com a instalao do Oracle. A criao do

banco inicial pode ser feita sem maior dificuldade depois da instalao e sua criao

agora ir apenas tornar a instalao do Oracle mais demorada.

Para criar um novo banco de dados, aps a instalao, inicie o aplicativo Database

Configuration Assistant, atravs do menu Iniciar>Programas>Oracle>Nome dado

durante a instalao>Configuration and Migration Tools. Para atualizar um banco de

dados j existente, execute o aplicativo Database Upgrade Assistant que se

encontra na mesma pasta.

Na tela de especificao da localizao dos arquivos v seo Destino, aceite as

variveis padro ou entre com o nome e diretrio para instalar os componentes do

Oracle. O caminho no deve conter espaos. Para avanar clique em Prximo. Alm

disso, nessa tela deve ser informado o nome da instncia do banco de dados. A

seguir, ser solicitada a escolha do tipo de instalao

(Enterprise, Standard,Standard One ou Personalizado).


Antes de instalar, o resumo dos produtos e arquivos que sero instalados

aparecer, depois clique emInstalar. Durante esse processo, podem ser visualizados

os produtos que esto sendo instalados. Aps essas telas, aconselhamos que deixe

as opes conforme sugerido pelo instalador.

Criando o banco de dados

O Oracle possui uma srie de ferramentas que permitem criar/gerenciar banco de

dados (veja a lista naTabela 3).

Ferramenta Descrio

Oracle Universal Installer Utilizado para instalar, atualizar ou remover componentes de

(OUI) software, alm de permitir a criao do banco de dados

Oracle Database Uma ferramenta que a Oracle desenvolveu com interface grfica e

Configuration Assistant que interage com o OUI ou pode ser utilizada independentemente

(ODCA)

SQL*Plus uma interface primria (via linha de cdigo) para o servidor do

banco de dados. Entre outras funes, permite iniciar e desativar o

banco de dados, criar e executar consultas, adicionar linhas,

modificar dados e criar relatrios personalizados


Oracle Enterprise Interface grfica utilizada para administrar, monitorar e ajustar

Manager (OEM) bancos de dados. Funciona como uma ferramenta de

gerenciamento centralizado de sistemas para os DBAs. Usado para

compartilhar tarefas com outros administradores, alm de conter

ferramentas para administrar servidores paralelos e bancos de

dados replicados

Tabela 3. Ferramentas Oracle de Administrao de Banco de Dados

Aqui ser demonstrado como criar o banco atravs do Assistente de Configurao

de Banco de dados da Oracle (Oracle Database Configuration Assistant ODCA).

Para comear, inicie o ODCA, atravs do

menu Iniciar>Programas>Oracle>Ferramentas de Configurao e Migrao. Na tela

inicial do assistente de instalao apenas clique em Prximo, na tela seguinte

escolha a opo Criar um Banco de Dados e novamente clique em Prximo. Em

seguida selecione Banco de Dados Personalizado. Na tela seguinte iniciam-se

realmente as configuraes.

A etapa seguinte a identificao do BD, onde o nome do banco de dados global

(nome e local dentro de uma estrutura de rede) criado fixando nome, obedecendo

ao limite de oito caracteres (como se fosse um nome de domnio), e o nome do SID

(System Identifier), que uma referncia para a instncia do banco de dados

Oracle que est sendo executada no servidor.


Coloque o Nome do Banco e SID como CLUBE (voc pode utilizar nomes de

sua preferncia, mas no esquea, claro, de digitar o nome correto quando

formos acessar o banco atravs do Delphi).

Nota: aconselhado que voc selecione o nome de banco de dados para o nome

do grupo de trabalho que voc estar usando. Porm, um nome diferente

aceitvel.

O passo seguinte, Opes de Gerenciamento, define a forma como o banco ser

gerenciado: centralmente atravs do Controle de Grade ou se localmente usando o

Controle de BD. Esses recursos fazem parte do OEM.

Nessa parte da criao do banco de dados possvel ativar as notificaes por

e-mail e a rotina diria automtica de backup. Para que o DBA seja avisado por

e-mail sempre que um evento importante ocorrer (backup finalizado, falta de

espao em disco, entre outros) informe o servidor SMTP e o endereo de e-

mail. Para realizar backup diariamente, informe o horrio, o nome do usurio e

a senha.

Nota: A rotina de backup consome grande quantidade de memria RAM e de CPU.

Justamente por isso, o horrio sugerido pela Oracle para incio do evento 2:00 da

manh, horrio em que a maioria das instituies est fechada.

Na tela seguinte, Credenciais de Banco de Dados devem ser especificadas as

senhas para os usurios SYS, SYSTEM, DBSNMP e SYSMAN. possvel criar uma

nica senha para todas as contas de usurios ou definir senhas diferentes para

cada uma delas.


Aps definir a(s) senha(s) clique novamente em Prximo para avanar para a tela

de Localizaes de Arquivos (local fsico onde os dados sero armazenados).

possvel selecionar diferentes localizaes para os arquivos do banco, bastando

selecionar uma das opes onde se deve especificar um local de armazenamento.

Para visualizar/alterar as variveis utilizadas como parmetro para os arquivos de

controle, de dados, deredo logs, entre outros, clique no boto Variveis de

Localizao de Arquivo.

Aconselhamos que sejam mantidas as opes padro, a menos que o leitor queira

utilizar outro disco (HD) para armazenar os dados. No prximo passo, so

especificadas as Configuraes de Recuperao.

A Oracle recomenda que os arquivos de log sejam arquivados em locais diferentes

e, de preferncia, em discos diferentes (imagine que o HD que contm a base de

dados sofra um problema fsico, no ser possvel retornar os dados). Selecione o

local onde os dados sero gravados e clique em Prximo.

Na etapa seguinte, Contedo do Banco de Dados, desmarque todas as opes,

exceto Oracle Text eRepositrio do Enterprise Manager. As opes desmarcadas

referem-se a aplicaes de Data Warehouse,Data Mining e geo-referenciamento.

A prxima etapa, a dcima, refere-se aos Parmetros de Inicializao. Devem ser

configurados parmetros como: memria, bloco de armazenamento (I/O), nmero

de processos, conjunto de caracteres e modo de conexo. Para ver todos os

padres, clique no boto Todos os Parmetros de Inicializao.


Na Tabela 4 esto alguns dos parmetros mais importantes, informaes sobre os

demais parmetros podem ser obtidas na prpria interface. Deixe os valores

conforme sugeridos pelo servidor.

Parmetro Descrio

OPEN_CURSORS Especifica o nmero mximo de cursores (reas

de contexto) abertos que uma sesso pode ter ao

mesmo tempo. Restringe o tamanho do cache de

cursores PL/SQL que a linguagem usa para evitar

nova anlise de instrues re-executadas por um

usurio. O valor deve ser alto o suficiente para

evitar que as aplicaes fiquem sem cursores

abertos.

Faixa de Valores: 1 - limite do SO.

Default: 64

BACKGROUND_DUMP_DEST Especifica o caminho (diretrio ou disco) em que

os arquivos de rastreamento so gravados para os

processos de segundo plano (LGWR, DBW etc.)

durante as operaes do Oracle. Define tambm a

localizao do arquivo de alerta do banco de

dados que registra eventos e mensagens


significativos.

Faixa de Valores: Qualquer nome de diretrio

vlido.

Default: ORACLE_HOME/rdbms/log (depende do

SO).

CLUSTER_DATABASE Definida como True para ativar a

opo clusters de Aplicao Real.

Default: False

COMPATIBLE Permite o uso de um novo release e, ao mesmo

tempo, garante a retro-compatibilidade com

uma release anterior.

Default: Release atual

CONTROL_FILES Especifica um ou mais nomes de arquivos de

controle. A Oracle recomenda o uso de vrios

arquivos em diferentes dispositivos ou o

espelhamento de arquivos do SO.

Faixa de Valores: 1 - 8 nomes de arquivos.


Default: Depende do SO.

CORE_DUMP_DEST O nome de diretrio que especifica a localizao

do dumpcentral (para UNIX).

Faixa de Valores: Qualquer nome de diretrio

vlido.

Default : ORACLE_HOME/dbs

DB_BLOCK_SIZE O tamanho (em bytes) de um bloco de banco de

dados. definido na criao do banco e no pode

ser alterado depois.

Faixa de Valores: 1024 - 65536 (depende do SO).

Default: 2048 (depende do SO), recomendamos

que utilize o tamanho 4096.

DB_CACHE_SIZE Especifica o tamanho do cache para buffers com

tamanho de bloco padro.

Faixa de Valores: Pelo menos 16M.

Default: 48M
DB_FILE_MULTIBLOCK_READ_COUNT O nmero mximo de blocos lidos durante uma

operao de I/O (entrada/sada) que envolve uma

varredura seqencial completa. Obviamente,

depende do SO.

Default: 8

DB_CREATE_FILE_DEST e Localizao padro do arquivo backup e

DB_RECOVERY_FILE_DEST de recovery, respectivamente. Recomenda-se que

ambos estejam localizados em discos diferentes

para fins de proteo de dados e de desempenho.

PROCESSES Especifica o nmero mximo de processos de

usurios do SO que se conectam simultaneamente

a um Oracle Server.

Default: 150

SESSIONS Especifica o nmero total de sesses de usurios e

do sistema. O valor padro deve ser maior do que

PROCESSES para permitir sesses recursivas.

Faixa de Valores: Qualquer valor inteiro

Default: Derivado (1.1 * PROCESSES + 5)


Tabela 4. Parmetros de inicializao. Fonte: Oracle

Na pgina Armazenamento de BD so configuradas as localizaes das tablespaces,

dos arquivos de dados, segmentos de Rollback e Grupos de Redo Logs. Se possvel

informe espaos em discos diferentes para os dois ltimos.

A dcima segunda e ltima etapa permite, alm da criao do banco agora

configurado, a criao de umbanco de dados de gabarito baseado nas informaes

atuais. Se o leitor criar esse banco poder utiliz-lo como wizard quando for preciso

criar um novo banco (ele aparecer na listagem exibida no segundo

passo, Gabaritos de Banco de Dados). Pronto, agora basta clicar em Finalizar e

aguardar alguns minutos at que o Oracle crie o banco de dados.

Nota: O tempo para a criao do banco vai depender exclusivamente do hardware,

portanto, dependendo do equipamento utilizado, o processo de criao pode ser

longo.

Configurao dos arquivos TNSNAMES e LISTENER

Os arquivos tnsnames.ora e listener.ora so utilizados para armazenar as

informaes necessrias para que as estaes de trabalho (clientes) consigam

conectar-se ao servidor Oracle. Os arquivos esto armazenados na

pasta %ORACLE_HOME%\db_1\NETWORK\ADMIN.

Para cada banco de dados criado no servidor adicione no arquivo tnsnames.ora uma

seo idntica a mostrada na Listagem 1. Uma vez que o arquivo for criado em

uma mquina, copie-o para todas as mquinas cliente que trabalharo com o

banco.
Listagem 1. Informaes do arquivo tnsnames.ora

# Arquivo padro

NOME_DA_CONEXAO =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)

(HOST = IP _DO_SERVIDOR ou NOME DO SERVIDOR)

(PORT = 1521)))

(CONNECT_DATA =

(SERVICE_NAME = CAMINHO_DO_SERVIDOR)))

# Arquivo configurado para o banco do artigo

CLUBE =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)

(HOST = 127.0.0.1)(PORT = 1521)))

(CONNECT_DATA =
(SERVICE_NAME = CLUBE)))

Tambm ser necessrio fazer uma pequena correo no arquivo listener.ora.

Localize no arquivo a seoSID_LIST_LISTENER e deixe-a como mostrado

na Listagem 2 (corrija o path c:\oracle\product\10.1.0\db_1 caso o local de

instalao escolhido tenha sido diferente do padro).

Listagem 2. Informaes do arquivo listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

(PROGRAM = extproc))

(SID_DESC =

(GLOBAL_DBNAME = CLUBE)

(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

(SID_NAME = CLUBE)))

Servios
Aps criar o banco, verifique os servios do servidor (Iniciar>Painel de

Controle>Ferramentas Administrativas>Servios). O Oracle iniciou

automaticamente o servio OracleDBConsoleCLUBE. Esse servio permite gerenciar

o banco de dados via browser (tente acessar o

endereohttp://Nome_Do_Servidor:5500/em), embora seja til, consome grande

quantidade de memria. Aconselha-se que esse servio seja parado e seu modo de

inicializao seja configurado como Manual.

Basicamente, so necessrios apenas dois servios para que o Oracle funcione

corretamente:OracleOraNomeInstalacaoTNSListener que realiza a conexo

e OracleServiceCLUBE que gerencia o banco de dados criado (o Oracle cria uma

instncia desse servio para instncia de banco de dados existente no servidor).

Criando tabelas

Para criar a tabela de exemplo ser utilizado o SQL Plus (um editor de linha de

comando) que est emIniciar>Programas>Oracle>Desenvolvimento de

Aplicaes. Na tela inicial informe o login (SYS ou SYSTEM), a senha e o nome da

conexo (CLUBE nesse caso).

Nota: Evidentemente que um utilitrio de linha de comando no a melhor opo

para se trabalhar com o banco de dados. Na seo Links deste artigo so citadas

trs ferramentas que tornam esse trabalho bem menos rduo.

Realizada a identificao com sucesso, o editor liberado para uso, mostrando o

prompt SQL>. Digite, nessa ordem, o comando que cria a tabela Cliente com

sua respectiva chave-primria (Listagem 3) o comando que cria


a sequence (Listagem 4, veja quadro Sequence) e o comando para incluir os

dados na tabela (Listagem 5).

Listagem 3. Comando para criar tabela a tabela Cliente

CREATE TABLE CLIENTE

(ID_CLIENTE NUMBER(*,0) NOT NULL,

NOME VARCHAR2(20),

CODIGO VARCHAR2(5),

TIPO_PESSOA CHAR(1),

DATA_CADASTRO DATE)

PCTFREE 10

INITRANS 1

MAXTRANS 255

TABLESPACE ts_comum_dat

STORAGE (

INITIAL 1

MINEXTENTS 1
MAXEXTENTS 2147483645)

ALTER TABLE CLIENTE

ADD PRIMARY KEY (ID_CLIENTE)

USING INDEX

PCTFREE 10

INITRANS 2

MAXTRANS 255

TABLESPACE ts_comum_dat

STORAGE (

INITIAL 1

MINEXTENTS 1

MAXEXTENTS 2147483645)

Listagem 4. Comando para criar a sequence SQ_CLIENTE

Criao de uma sequence para o Id da tabela

CREATE SEQUENCE SQ_CLIENTE


INCREMENT BY 1

START WITH 1

MINVALUE 1

MAXVALUE 9999999999999999

NOCYCLE

NOORDER

CACHE 20

Listagem 5. Comando para incluir dados na tabela Cliente

INSERT INTO CLIENTE VALUES (sq_cliente.NEXTVAL,

'Jos Silva', 123, 'F', sysdate);

INSERT INTO CLIENTE VALUES (sq_cliente.NEXTVAL,

'Maria Aparecida', 321, 'F', sysdate);

INSERT INTO CLIENTE VALUES (sq_cliente.NEXTVAL,

'ching Ling S.A.', 543, 'J', sysdate);

Sequence
Uma sequence um nmero seqencial. Seria o mesmo que o tipo de dado auto-

incremento presente em outros bancos, no fosse o caso dela no ser incrementada

automaticamente. Para saber o valor atual utiliza-se nome_sequence.CurrVal. Para

incrementar seu valor usado o comandonome_sequence.NextVal (um exemplo de

utilizao pode ser visto na Listagem 5).

Comandos avanados

O Oracle traz consigo uma srie de funes que so de grande valia para o

desenvolvedor. A seguir so mostrados alguns deles.

DECODE - Uma espcie de comando IF. Verifica o valor de um campo e retorna

uma expresso diferente para ele. Exemplo:

SELECT DECODE(tipo_pessoa,

'F', 'Pessoa Fsica',

'J', 'Pessoa Jurdica') tipo_pessoa, nome

FROM cliente

LPAD e RPAD - O primeiro adiciona X vezes o caractere do terceiro argumento

esquerda do campo especificado. O segundo adiciona direita. O exemplo a seguir

verifica o tipo de pessoa e incrementa o campo cdigo com cinco zeros esquerda

se for uma pessoa fsica ou com trs se for uma pessoa jurdica:

SELECT DECODE(tipo_pessoa,

'F', LPAD(codigo,5,'0'),
'J', LPAD(codigo,3,'0')) codigo,

FROM cliente

NVL e NVL2 - No primeiro, se o valor for nulo, retorna o valor especificado aps a

vrgula. No segundo,se o valor no for nulo, retorna o valor especificado aps a

primeira vrgula, sendo nulo retorna o valor do ltimo argumento. Exemplo:

SELECT NVL(codigo,0), NVL2(nome, 'No Nulo', 'Nulo')

FROM cliente

ADD_MONTHS, NEXT_DAY e LAST_DAY - Insere X ms (es) na data

especificada, seleciona o prximo dia do ms onde o dia da semana seja igual ao

passado no segundo argumento (em ingls obrigatoriamente) e retorna o ltimo dia

do ms da data passada, respectivamente. Exemplo:

SELECT ADD_MONTHS(data_cadastro,2),

NEXT_DAY(data_cadastro, 'SATURDAY'),

LAST_DAY(data_cadastro)

FROM cliente

EXTRACT- Extrai o dia, ms e/ou ano da uma data. Exemplo:

SELECT EXTRACT(DAY FROM data_cadastro),

EXTRACT(MONTH FROM data_cadastro),

EXTRACT(YEAR FROM data_cadastro)


FROM cliente

REPLACE - Retira os caracteres de um campo. O exemplo a seguir tira os espaos

do campo nome:

SELECT REPLACE(nome, ' ')

FROM cliente

MINUS - Especifica uma operao de subtrao de conjunto (A B). Pode ser

usado em substituio a expresses do tipo In ou Not In, entretanto sua execuo

muito mais rpida. Suponha que no banco de dados existisse uma tabela com o

ID de todos os clientes que esto em dvida com a empresa. Uma maneira de

mostrar os clientes no devedores :

SELECT c.id_cliente

FROM cliente c

WHERE id_cliente not in (SELECT id_cliente FROM devedor)

Esse mesmo comando pode ser escrito assim:

SELECT id_cliente FROM cliente

MINUS

SELECT id_cliente FROM devedor

Conectando o Delphi ao Oracle


Para finalizar, falta ligar o Oracle ao Delphi. A ligao no diferente dos outros

bancos, de qualquer forma, mostraremos aqui como ela deve ser feita.

Conexo via BDE - Inicie uma nova aplicao em File>New>Application. Adicione

um Data Module (File>New>Data Module). No Data Module, coloque um Database.

D um duplo clique no componente, configure a propriedade Name como

ClubeDelphi e selecione a opo Oracle em Drive Name. Clique no boto Default e

altere as seguintes propriedades:

SERVER NAME= CLUBE

USER NAME= nome_usuario

SQLQRYMODE= server

PASSWORD= senha_usuario

Feche a janela de parmetros, e selecione True para a propriedade Connected. A

conexo via BDE est estabelecida. Agora basta utilizar os

componentes Table, Query e UpdateSQL da mesma forma que o leitor utiliza com

outros bancos.

Conexo via dbExpress - Assim como no BDE, a conexo via DBX idntica aos

demais bancos de dados. Entretanto, aqui preciso ressaltar que os drivers padro

do dbExpress possuem uma srie debugs. Para se livrar de falhas de conexo,

reconhecimento de tipos de dados e outra srie de problemas altamente

recomendado que o leitor utilize um driver de terceiros para realizar a conexo.

Uma outra opo o dbExpress Plus (veja edio 41).


Um bom driver o fornecido pela Core Lab (crlab.com/dbx). Sua instalao

bastante simples e, uma vez instalado, seu uso transparente para o

desenvolvedor. O driver interage diretamente com a biblioteca, e o programador

nem nota sua existncia. Como nem tudo na vida perfeito, preciso dizer que

esse driver no grtis.

Instalando ou no um driver de terceiro, a forma de conexo a mesma. Inicie

uma nova aplicao emFile>New>Application. Adicione um Data Module

(File>New>Data Module). Coloque um SQLConnection no Data Module. D um

duplo clique no componente, clique no boto Add Connection (representado pelo

sinal +) configure a propriedade Name como ClubeDelphi e selecione a

opo Oracle (Core Lab) em Drive Name.

Note que a opo Oracle tambm est na lista, ou seja, a instalao de drives de

terceiros, no exclui a possibilidade de conexo padro do DBX. Clique em OK e

altere os seguintes parmetros de conexo:

DataBase= CLUBE

User_Name= nome_usuario

Password= senha_usuario

Fecha a janela de parmetros e selecione True para a propriedade Connected para

estabelecer a conexo. Assim como no BDE, agora basta utilizar os componentes da

biblioteca como em qualquer outro banco de dados. A instalao do driver ainda

nos traz um novo componente na paleta dbExpress do Delphi, oCRSQLConnection.


Existem outras formas de acessar o Oracle a partir de aplicaes Delphi. Veja os

boxes Oracle Data Access Components e Acessando o Oracle no .NET.

Concluses

Mostramos, passo a passo, como instalar do banco de dados Oracle 10g, criar um

banco de dados no mesmo e como conect-lo usando Delphi. Mostramos tambm

alguns comandos SQL exclusivos do Oracle.

Links

www.oracle.com/technology/database

Site oficial do Banco de Dados Oracle

www.oracle.com/technology/oramag/oracle/05-sep/o55security.html

Artigo de Arup Nanda sobre TDE, tambm publicado na Oracle Magazine de

Set/Out 2005.

www.quest.com/sql_navigator

Site do SQL Navigator (ideal para programadores)

www.quest.com/toad

Site do TOAD (ideal para DBAs)

www.allroundautomations.nl/plsqldev.html

Site do PL/SQL Developer (para programadores)

You might also like