问题描述
Question:
我无法将CLOB从PHP传递到Oracle DB中的存储过程中,我不知道为什么。
我认为,我遵循PHP和其他站点中的示例,但是我需要使用clob作为参数
不仅仅是选择、更新或输出。我总是得到错误:
OCI-Lob:: 写入 (): OCI _ 无效 _ 句柄
怎么了?更好的我该怎么做?
Test case:
(1) Oracle方面:
(2) PHP客户端:
我无法将CLOB从PHP传递到Oracle DB中的存储过程中,我不知道为什么。
我认为,我遵循PHP和其他站点中的示例,但是我需要使用clob作为参数
不仅仅是选择、更新或输出。我总是得到错误:
OCI-Lob:: 写入 (): OCI _ 无效 _ 句柄
怎么了?更好的我该怎么做?
Test case:
(1) Oracle方面:
create procedure TMP_TEST(pMyClob in CLOB) is begin null ; // something, not important ... end ;
(2) PHP客户端:
$s = 'some input some input ... some input'; $query = "begin TMP_TEST( pMyClob => :abcde ); end; "; $conn = OCI_Connect($user, $pass, $db, $charset); $stmt = OCI_Parse($conn, $query); $cin = OCI_New_Descriptor($conn, OCI_DTYPE_LOB) ; OCI_Bind_By_Name($stmt, ':abcde', $cin, -1, OCI_B_CLOB); OCI_Execute($stmt); $cin->write($s); // THIS PRODUCE AN ERROR @OCI_Free_Statement($stmt); @OCI_Close($conn); ?>
专家解答
我问克里斯·琼斯这件事。他建议在这里阅读:
http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html
并说您可能在通话中缺少OCI_NO_AUTO_COMMIT标志。
这里也是一篇不错的文章
http://www.oracle.com/technetwork/articles/fuecks-lobs-095315.html
http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html
并说您可能在通话中缺少OCI_NO_AUTO_COMMIT标志。
这里也是一篇不错的文章
http://www.oracle.com/technetwork/articles/fuecks-lobs-095315.html
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




