刚刚试着用PHP 的oci8 函数集去调用一个存储过程时总是查询失败且返回以下错误,很是郁闷。。
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
后来发现是在使用oci_bind_by_name() 函数时没有为绑定的输出变量预先分配好存储的缓冲区大小,例如:
应该写成:
指定的这个长度应该要足够大,如果上例中$v_retmsg 超过了100,同样会执行失败且报错。
本文介绍了一个在使用PHP的oci8函数集调用Oracle存储过程时遇到的ORA-06502错误,并给出了具体的解决方案,即正确设置oci_bind_by_name函数中的缓冲区大小。
刚刚试着用PHP 的oci8 函数集去调用一个存储过程时总是查询失败且返回以下错误,很是郁闷。。
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
后来发现是在使用oci_bind_by_name() 函数时没有为绑定的输出变量预先分配好存储的缓冲区大小,例如:
应该写成:
指定的这个长度应该要足够大,如果上例中$v_retmsg 超过了100,同样会执行失败且报错。
1816
1052
1万+

被折叠的 条评论
为什么被折叠?