php oracle 游标,PHP PDO 调用 oracle数据库存储过程,无法正常获取游标变量,有其他方法获取结果集么?...

在尝试使用PDO_OCI执行PL/SQL存储过程`t_pad_user_login`时遇到错误,错误信息提示参数数量或类型错误。代码中已经绑定了用户名称、密码、经度、纬度以及多个输出参数,但执行时仍出现ORA-06550和PLS-00306错误,表明可能存在输入参数类型不匹配或缺少参数的问题。
摘要由CSDN通过智能技术生成

create or replace procedure t_pad_user_login(

user_name varchar2, /*用户名*/

user_pwd varchar2, /*用户密码*/

user_lon float, /*经度*/

user_lat float, /*纬度*/

out_user_xh out varchar2, /*用户序号*/

out_user_realname out varchar2, /*用户姓名*/

ret out varchar2, /*返回代码 1 成功 -1 失败*/

error out varchar2, /*错误信息*/

o_cur out SYS_REFCURSOR

)

$stmt = $db->prepare("begin t_pad_user_login(user_name => ?, user_pwd => ?, user_lon => ?, user_lat => ?, out_user_xh => ?, out_user_realname => ?, ret => ?, error => ?, o_cur => ? ); END;");

$stmt->bindParam(1, $user_name, PDO::PARAM_STR, 50);

$stmt->bindParam(2, $user_pwd, PDO::PARAM_STR, 50);

$stmt->bindParam(3, $user_lon, PDO::PARAM_STR, 50);

$stmt->bindParam(4, $user_lat, PDO::PARAM_STR, 50);

$stmt->bindParam(5, $user_xh, PDO::PARAM_INPUT_OUTPUT, 50);

$stmt->bindParam(6, $user_realname, PDO::PARAM_INPUT_OUTPUT, 50);

$stmt->bindParam(7, $error_code, PDO::PARAM_INPUT_OUTPUT, 50);

$stmt->bindParam(8, $error_msg, PDO::PARAM_INPUT_OUTPUT, 2000);

$stmt->bindParam(9, $error_msg1, PDO::PARAM_LOB);

错误:array ( 0 => 'HY000', 1 => 6550, 2 => 'OCIStmtExecute: ORA-06550: 第 1 行, 第 7 列: PLS-00306: 调用 \'T_PAD_USER_LOGIN\' 时参数个数或类型错误 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored (ext\\pdo_oci\\oci_statement.c:148)', )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值