从php调用oracle anonimous pl/sql

从php调用oracle anonimous pl/sql,php,oracle,oracle-call-interface,Php,Oracle,Oracle Call Interface,我有以下代码: $P_ID = 12; $P_RESULTADO = null; $c = OCILogon($config['db']['username'], $config['db']['password'], $config['db']['hostspec']); $query = 'DECLARE P_ID NUMBER; P_RESULTADO VARCHAR2(32767); BEGIN P_ID := 12; P_RESULTADO := NULL; SINTRA.PKG

我有以下代码:

$P_ID = 12;
$P_RESULTADO = null;

$c = OCILogon($config['db']['username'], $config['db']['password'], $config['db']['hostspec']);


$query = 'DECLARE
P_ID NUMBER;
P_RESULTADO VARCHAR2(32767);
BEGIN
P_ID := 12; 
P_RESULTADO := NULL;
SINTRA.PKG_CONSULTAS_RAPIDAS.P_DATOS_PAIS_PHP ( :P_ID, :P_RESULTADO );
COMMIT;
END;';

$stid = oci_parse($c, $query);
   oci_bind_by_name($stid, ":P_RESULTADO", $P_RESULTADO, 32767);
   oci_bind_by_name($stid, ":P_ID", $P_ID, 2);

    oci_execute($stid,OCI_DEFAULT);



while ($row = oci_fetch($stid)) {

$este[] = $row; 

}

oci_close($c);

print_r($este);
但是他给了我这个错误:

警告:oci_fetch():ORA-24374:定义在获取之前未完成或执行并获取


我真的不知道我做错了什么,你能告诉我怎么解决吗?

在获取或执行并获取之前,你必须这样做

oci_define_by_name 
对于每一列,不执行fetch或execute