+1

PHP e Oracle - O mundo dos grandes!!

criado por Marcelo Pereira Fonseca da Silva em 25/06/2004 11:23am
Alguns pontos relevantes pra quem está saindo de um MySQL da vida e fuçando num Oracle.


- É interessante o uso da função OCIParse(); para verificar integridade de comandos SQL.
- O OCIExecute() executa "efetivamente" um "bloco de comando", ou uma instrução SQL.
- Para validar ou desfazer as possíveis caquinhas usamos OCIRollback e OCICommit (valida tudo) ou seja, se está usando o commit valida todos os comandos SQL passados após o último que foi dado.

Importante: se você tem uma ordem de comandos assim:
UPDATE, DELETE, SELECT.. e sem commit e depois você dá um CREATE TABLE, é feito um Commit que valida o UPDATE e o DELETE anteriores.. então, um OCIRollBack conhecido como anti-caquinha neste caso não vai funcionar porque você deu um CREATE TABLE que tem "embutido" um Commit.

- O OCI não tem função que retorna a quantidade de colunas de um select (isso é mal)
- Há diferenças de uso na função OCIExecute para UPDATE, SELECT, INSERT e DELETE.
- Há duas constantes importantes no OCIExecute são elas: OCI_COMMIT_ON_SUCCESS e OCI_DEFAULT a última é usado por padrão como o nome sugere, e se não especificar um OCI_COMMIT_ON_SUCCESS não poderá ser usado um OCICommit.
- O caractere de concatenação no Oracle é o ||

Bom, este é um primeiro documento no qual gostaria e espero ter tirado o medo de quem tem o Oracle instalado em qualquer plataforma e não sabe nem onde nem como procurar informação, a PHP.net novamente é ponto de referência, e pelo que consegui captar, os comentários abaixo dos descritivos das funções no site da PHP são relevantes e importantíssimos, dicas em N plataformas de como trabalhar me foram úteis na hora de começar a trabalhar com estas duas ferramentas.

Para não prolongar este artigo irei encerrar este como o primeiro de uma série de outros artigos sobre PHP / Oracle se a comunidade gostar deste aqui, aprofundar um pouco e até mesmo contruirmos alguns exemplos de sisteminhas em Oracle que já são vistos hoje em MySQL.

Marcelo Pereira

Comentários:

Mostrando 1 - 10 de 23 comentários
- Alguem sabe o pq desse erro no Oracle + PHP
ORA-12560: TNS:erro de adaptador de protocolo


- Estou usando Oracle 10g e PHP 5.1.6 Apache 2.2, se quiser ver o info gabrielgaliaso.no-ip.org
29/12/2006 6:12am (~17 anos atrás)

Elvis Carlos disse:
Boa tarde, alguem por favor saberia me informa que erro e este???? Conheco bem Oracle mas php nada ainda rsrsrsrs. Desde ja agradeco.

Fatal error: Call to undefined function OCILogon() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\phpinfo.php on line 2
05/11/2006 11:56am (~17 anos atrás)

Nao estou conseguindo usar as funções oci em um win xp prof.
Instalei o Oracle9i, habilitei no php.ini php_oracle.dll e php_oci8.dll mas consigo apenas usar as funções ora_*. Nas oci* o php retorna que não existe. Aceito sugestões.
14/06/2006 9:02am (~18 anos atrás)

diego silva disse:
Cara eu tambem instalei o oracle 8 e php 5
e não consigo conectar por nada.
Se alguem ja tiver conseguindo me mande resposta.
Mas eu estou tentando com o oracle e o php na mesma maquina!
23/03/2006 5:50am (~18 anos atrás)

luisandro disse:
Ólá pessoal, eu tentei fazer a conexão do PHP com o Oracle e não tem jeito de funcionar tentei com varias versões do PHP e do Apache, tenho atualmente no micro o Apache 2, PHP 5, Client Oracle 8i, E o Win 2000, toda a configuração tanto quanto do oracle quanto php e apache estam corretas revisadas varias vezes por mais de 3 programadores aqui da empresa, e a conclusão que chegamos é que o php não conecta com o oracle 8i, não com Apache 2, PHP 4 e 5 e o Client Oracle 8i.
16/01/2006 11:52am (~18 anos atrás)

Rui Ribeiro disse:
Instalei o apache 1.3 e o php 5 sem problemas.. e ta td a funcionar!Eu agr keria ke o apache possa aceder a uma base de dados Oracle!Colokei o extension=oci.dll no php.ini ms ele diz ke n consegue carregar o module OCI! Alguem me puderia ajudar?
um Abraço
11/11/2005 6:06pm (~18 anos atrás)

olá colega!
muito boa sua matéria!! só gostaria também que falasse um pouco sobre como executar stored procedures no oracle usando o php!!
Valew!
13/07/2005 12:56pm (~19 anos atrás)

ERRO NA CONEXÃO
ORA-03113: end-of-file on communication channel

- to com esse erro ai alguem tem uma solução??

Desde já agradeço !
16/06/2005 1:33pm (~19 anos atrás)

Alex Monte disse:
ta blz mto lindo... ri bastante quase me acabei d rir na verdade...

e pra execultar uma procedure ? vou usar OCIBindByName ???

o ki farei ?
08/06/2005 2:13pm (~19 anos atrás)

Marcelo, alguma novidade em relação ao Oracle 9i?
20/01/2005 11:18am (~19 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)