Criei uma classe para execução de operações com oracle evitando ter que digitar aquele monte de comando todas as vezes.
<?php
/**
* Desenvolvido por Cristiano da Silva Teixeira
* E-mail: cristiano-info@hotmail.com
*/

class oracle {

var $_sql = ”;
var $_oracleconnect = ”;
var $_oracleopencon = ”;
var $rows = array();

var $config_odbuser = ‘xxxx’; /**{Setamos o usuário}*/
var $config_otsname = ‘xxx’; /**{Setamos o TSNAMES}*/
var $config_odbpass = ‘xxxx’; /**{Setamos a Senha}*/

/**{Conexão Oracle !Importante}*/
function oconnection(){
/**{Criando a Conexão}*/
$this->_oracleconnect = @ora_logon( $this->config_odbuser . ‘@’ . $this->config_otsname, $this->config_odbpass );
if( !($this->_oracleconnect) ){
echo ‘Erro na conexão’;
exit();
}
}
/**{Fechamos a conexão}*/
function oracloseconnection() {
@ora_commitoff( $this->_oracleconnect );
@ora_logoff( $this->_oracleconnect );
return true;
}
/**{Carregamos a Query Sql}*/
function loadoquery( $sql ){
$this->_sql = $sql;
return $this->_sql;
}

/**{Executamos a Query Sql}*/
function oquery(){
$this->oconnection();
$this->oraopen = ora_open( $this->_oracleconnect );
if( !( $this->oraopen ) ){
$this->oracloseconnection();
echo ‘Erro no open’;
exit;
}

$this->oraparse = ora_parse( $this->oraopen, $this->_sql );
if( !( $this->oraparse ) ){
$this->oracloseconnection();
echo ‘Erro no parse’;
exit;
}

return $this->oraopen;
$this->oracloseconnection();
}

/**{Carregamos as linhas}*/
function loadOraRows(){
$this->oquery();
$this->oraexectute = ora_exec( $this->oraopen );
if( !( $this->oraexectute ) ){
$this->oracloseconnection();
echo ‘Erro na execução’;
exit;
}
$this->oracolunas = ora_numcols( $this->oraopen );
if( !( $this->oracolunas ) ){
$this->oracloseconnection();
echo ‘Erro no numero de colunas’;
exit;
}

$a = 0;
while( ora_fetch( $this->oraopen ) ) {
for( $i=0; $i < $this->oracolunas; $i++ ){
$this->rows[$a][ora_columnname( $this->oraopen, $i )] = ora_getcolumn( $this->oraopen, $i );
}
$i = 0;
$a++;
}
$this->oracloseconnection();
return $this->rows;
}

}

/**{Usuando a Classe}*/
$ora = new oracle();

$query = ‘SELECT campo1, campo2 FROM tabela’;
$ora->loadoquery( $query );
$linhas = $ora->loadOraRows();
foreach( $linhas as $linha ){
echo $linha['campo1'] . ‘ - ‘ . $linha['campo2'] . ‘<br />’;
}

?>


Leave a Comment