Voici une petite class si vous avez du php5 et de l'XCS (Oracle 10g)
<?php5

class APISOFT_XCS
{
protected $oracle_server = "LOCALHOST";
protected $port = "1551";
protected $connection = 0;
protected $open = 0;

public function assign_oracle_server($server,$port) {
		$this->oracle_server = $server;
		$this->port = $port;
		}

public function assign_connection() {
		$this->connection = ora_logon("INVITE@".$this->oracle_server.":".$this->port."/APISOFT", "INVITE");
		$this->open = ora_open($this->connection);
		}

public function get_oracle_server() {
	return $this->oracle_server;
}


private function get_OracleSQL($query="") {
$v_parse = ora_Parse($this->open, $query);
$v_execute = ora_Exec($this->open);
$temp = array();
$liste = array();
$numfields = ora_numcols($this->open); 

while (Ora_Fetch($this->open)) {
    for($col=0;$col<$numfields;$col++)
    		{ 
   			$colname = ora_columnname($this->open,$col);
   			$temp[$colname] = ora_getcolumn ($this->open, $col);
   			if (ora_columntype($this->open,$col)=="NUMBER")
   					{
   					str_replace(",",".",ora_getcolumn ($this->open, $col));	
   					}
    		}
    $liste[] = $temp;
		}
return $liste;
}

public function  get_Dossiers($promatex=true) {
$SQL =  "SELECT ";
$SQL .= " dossiers.dossiercode AS DOSSIER,";
$SQL .= " comm_api.sys_defste.NOM AS NOM ";
$SQL .= " FROM apisys.dossiers, comm_api.sys_defste ";
$SQL .= " WHERE Flag=3 ";
$SQL .= " AND Softwarecode='GESTION' ";
$SQL .= " AND sys_defste.dossier = dossiers.dossiercode ";
if($promatex==false)
	{
	$SQL .= " AND DOSSIER!='PROMATEX' ";
	}
return $this->get_OracleSQL($SQL);
}

public function get_stock($dossiers,$ARTCOD="") {
$temp = array();
$stock = array();
for($i=0;$i<count($dossiers);$i++)
	{
	$requete  = "SELECT S.CODEARTICLE, D.NOM, S.QUANTITE FROM APISOFT_DOS_%s.STOCKREEL S , ";
	$requete .=	" APISOFT_DOS_%s.DEPOT D WHERE S.CODEDEPOT=D.CODE(+) AND S.CODEARTICLE='%s' ORDER BY D.NOM ASC";
	$SQL = sprintf($requete,$dossiers[$i]['DOSSIER'],$dossiers[$i]['DOSSIER'],$ARTCOD);
	$temp['SERVER'] = $this->oracle_server;
	$temp['DOSSIER'] = $dossiers[$i]['DOSSIER'];
	$temp['NOM'] = $dossiers[$i]['NOM'];
	$temp['STOCK']   = $this->get_OracleSQL($SQL);
	$stock[] = $temp;
	}
return $stock;
}

private function __destructor() { 
ora_close($this->_open);
}

}
?>