相关疑难解决方法(0)

从PHP调用Oracle存储过程

我正在尝试执行并从我的过程中获取数据:

这是我的程序定义方式:

create or replace PROCEDURE SP_GET_MY_DATA(
         IN_POP VARCHAR2,
         IN_SEG VARCHAR2,
         IN_DUR VARCHAR2, 
         IN_VIEW INTEGER, 
         IN_PAGE INTEGER, 
         VIEW_DATA_CUR OUT SYS_REFCURSOR) AS ...
Run Code Online (Sandbox Code Playgroud)

这是我的PHP代码,用于执行和从过程中获取数据:

$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = JXYX.com)(PORT = 1521)))(CONNECT_DATA=(SID=DHSJKS)))";
$conn = ocilogon("XXXXXX","XXXXXXXX",$db);          

$sql = 'BEGIN SP_GET_MY_DATA(:POP, :SEG, :DUR, :VIEW, :PAGE, :OUTPUT_CUR); END;';            

$stmt = oci_parse($conn,$sql);                     
oci_bind_by_name($stmt,':POP',$pop);           
oci_bind_by_name($stmt,':SEG',$seg);           
oci_bind_by_name($stmt,':DUR',$dur);           
oci_bind_by_name($stmt,':VIEW',$view);           
oci_bind_by_name($stmt,':PAGE',$page);           
$OUTPUT_CUR = oci_new_cursor($conn);
oci_bind_by_name($stmt,":OUTPUT_CUR", $OUTPUT_CUR, -1, OCI_B_CURSOR);                   
oci_execute($stmt, OCI_DEFAULT); 

while ($data = oci_fetch_assoc($OUTPUT_CUR)) {
    print_r($data);
}
Run Code Online (Sandbox Code Playgroud)

但是这样做我收到了这个错误:

oci_fetch_assoc():ORA-24374:在获取或执行之前定义未完成并获取".

我无法弄清楚我错过了什么.你能帮我吗?

php oracle

4
推荐指数
1
解决办法
7367
查看次数

标签 统计

oracle ×1

php ×1