暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 将CLOB as IN参数从PHP传递到存储过程

askTom 2017-03-10
243

问题描述

Question:
我无法将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客户端:
 :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


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论