Oi Ana, achei sua pergunta importante porque já tive vários problemas com o PHP/ORACLE (não gosto dessa mistura), então resolvi fazer um teste (segue o código abaixo - arquivo único). Levando em consideração que conectei a um ORACLE XE e a outro 10g remotos (não tenho um 9i aqui), tudo funcionou ok. Desenvolvi o código na minha máquina local rodando UBUNTU 10g, PHP5 e um instantclient que baixei outro dia. Modifiquei os parâmetros de conexão e selects por motivos óbvios. Qualquer dúvida, consulte o manual do PHP no site www.php.net (boa parte do código copiei de lá). Tente fazer o código orientado à objetos, fica bem melhor de trabalhar. Boa sorte.
[]'s, Daniel Falcão <?php /* * CONFIGURACOES */ define("USER", "ovelha"); define("PASS", "novelo"); define("STRING", "10.128.0.21:1521/REBANHO"); define("USER_ALT", "boi"); define("PASS_ALT", "leite"); define("STRING_ALT", "10.128.5.172:1521/MANADA"); define("LOCALE", "utf8"); /* * FUNCOES */ function conecta($user, $pass, $stringConn, $locale) { $conn = oci_connect($user, $pass, $stringConn, $locale); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } return $conn; } function executa($conn, $query) { $stid = oci_parse($conn, $query); $r = oci_execute($stid); oci_fetch_all($stid, $res); oci_free_statement($stid); return $res; } /* * UTILIZANDO AS FUNCOES: */ //conectando e executando no primeiro banco: $connx = conecta(USER, PASS, STRING, LOCALE); $resx = executa($connx, "select * from fazenda"); var_dump($resx); echo "<hr/>"; //conectando e executando no segundo banco: $conny = conecta(USER_ALT, PASS_ALT, STRING_ALT, LOCALE); $resy = executa($conny, "select * from outrafazenda"); var_dump($resy); oci_close($connx); oci_close($conny); ?> Em 19 de julho de 2011 09:38, José Laurindo <jlchia...@yahoo.com.br>escreveu: > ** > > > Colega, com certeza o percentual de especialistas em bancos Oracle que > participam da lista E que também são programadores php não deve ser muito > alto,imagino : NECESSARIAMENTE tenho que te recomendar uma lista de php... > > De qquer forma : até onde eu entendo o php é semelhante à outras linguagem > aonde vc tem um comando de conexão e aonde vc indica um e apenas um banco a > conectar a cada vez, então ACHO (é um achismo, NÂO é nada mais que isso), eu > Acho que as opções são : > > a) fora do seu programa, criar no banco de dados 9i um DATABASE LINK, ie, > uma conexão lógica interna banco-a-banco apontando pro banco 10g : isso te > permite que o seu programa conecte no banco 9i, use as tabelas normalmente > do 9i, mas AINDA usando essa conexão 9i, pesquise tabelas do 10g... O lance > é que : > > 1. isso depende de o banco 9i ter acesso via rede ao banco 10g > > e > > 2. muito certamente vc Não Deve ter privilégios pra criar coisas dentro dos > bancos, vc tem que pedir pro DBA/administrador > > ou > > b) no mesmo programa, vc conecta no 9i, busca os dados que precisa, os > armazena localmente (num arquivo temporário, talvez) , aí conecta no 10g e > vai lendo linha-a-linha o arq.temporário > > ou > > c) loop de programação tipo : > > loop > conecta no banco 9i > lê uma linha e armazena em variáveis de memória > conecta no banco 10g > faz a pesquisa necessária especificando os dados que estão em memória > encerra quando todos os dados do 9i foram lidos > end loop > > ==> nem preciso dizer, programa-exemplo fazendo b) ou c) não tem jeito de > eu fazer, conheço o mínimo do mínimo, mas até onde sei b) e c) são SIM > factíveis em php..... > > []s > > Chiappa > > > > --- Em oracle_br@yahoogrupos.com.br, "Ana" <doceangell@...> escreveu > > > > > Bom dia pessoal! > > > > Tenho 2 bases uma Oracle 9i e outra 10g, preciso urgentemente fazer um > select no Oracle 9i em um mesmo arquivo php que utiliza o Oracle 10g... > > É possível? > > > > Vou dar um exemplo do que eu fiz... Criei 2 arquivos de conexão .php (um > para cada banco de dados) nele tem meus ociConctar(), ociDesconectar(), e > todos funcionam... > > > > //exemplo do banco 1 (funciona esse) esse arquivo se chama config.php > > function ociConectar() > > { > > global $ociConn1; > > $db = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) > > (Host = 200.169.63.2)(Port = 1521))) > > (CONNECT_DATA = (SID = meusid)))"; > > if(!( $ociConn1 = oci_connect("usuario", "senha", $db) )) > > return $conectado1 = 0; > > else > > return $conectado1 = 1; > > } > > > > //exemplo do banco 2 - esse arquivo se chama config2.php > > function ociConectar2() > > { > > global $ociConn2; > > $db2 = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) > > (Host = 200.169.63.4)(Port = 1521))) > > (CONNECT_DATA = (SID = gep)))"; > > if(!( $ociConn2 = oci_connect("usuario", "senha", $db2) )) > > return 0; > > else > > return 1; > > } > > > > //////////////// > > Lá no meu arquivo .php eu dou 2 require_once: > > > > require_once(config.php); > > require_once(config2.php); > > > > Durante o código existem vários ociExecutar($sql); do banco 1 que > funcionam! MAS, quando eu dou um ociExecutar2($sql); > > no meio do código é aí que não funciona... > > > > Minha tupla2() vem vazia. E tem dados nesse select, e o user ta certo > > e eu já conferir e reconferir dezenas de vezes e não entendo o pq da > minha tupla2() já dei ociDesconectar antes e ociCOnectar2() mas ainda não > funciona... > > > > Eu só corro pra cá quando é importante, alguém pode me ajudar?? > > > > > -- Atenciosamente, Daniel Falcão Analista e Desenvolvedor de Software http://br.linkedin.com/in/embuar http://lattes.cnpq.br/2208735579737258 http://embuar.blogspot.com http://twitter.com/embuar [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html