当我在PHP中使用PDO驱动程序调用它时,如何从我的存储过程中输出CLOB?
该过程在Oracle中是这样定义的:
PROCEDURE COPI_SCHE(P_ID IN LOCT_SCHE.ID%TYPE, P_SCHE OUT CLOB)
SCHE LOCT。ID %类型是数字(10)
如果我用TOAD调用它,它会工作:
DECLARE test CLOB; BEGIN LOC_SH.COPI_SCHE(884, TEST); dbms_output.put_line(test); END ;
输出结果:
{ "ID" : "915", "FK_RA_NO_PERM" : "1234567", "TYPE_SCHE" : "PLP", "DESC_SCHE" : "test 4", "AN" : "", "TIMB_MAJ" : "15-04-10", "USAG_MAJ" : "USER" }
因此,在PHP中,我尝试以下方法:
$connection = $this->getConnection(); $idGrouping = 884; $sql = "CALL LOC_SH.COPI_SCHE(?,?)"; $statement = $connection->prepare($sql); $statement->bindParam(1, $idGrouping, PDO::PARAM_INT); $statement->bindParam(2, $result, PDO::PARAM_LOB); $statement->execute();
但是甲骨文抛出:
ORA-06553: PLS-306: wrong number or types of arguments in call to 'COPI_SCHE'
怎么了?
我尝试了许多与PDO::PARAM_LOB|PDO::PARAM_INPUT_OUTPUT的关联,但没有任何效果。
感谢您的帮助。
终于靠自己得到了。
我不知道为什么,但是PDO::PARAM_LOB在这种情况下不起作用。
解决方法是像这样使用PDO::PARAM_STR:
$statement-
本文向大家介绍PHP使用PDO调用mssql存储过程的方法示例,包括了PHP使用PDO调用mssql存储过程的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用PDO调用mssql存储过程的方法。分享给大家供大家参考,具体如下: 数据库中已创建存储过程user_logon_check, PHP调用示例如下, 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pd
我一直在研究清理用户输入的最有效方法。我的应用程序是一个简单的post请求,用于对用户进行身份验证。在网上我可以找到十几种不同的“最佳”方法。这些方法中有很多都使用不推荐的php函数,或者看起来过于复杂。为了连接到我的sql数据库,我使用PDO类。 在搜索自己的函数时,我无意中发现: 带有绑定参数的预准备语句不仅更可移植、更方便、不受SQL注入的影响,而且通常比内插查询执行得快得多,因为服务器端和
尝试调用MSSQL存储过程。过程基本上是这样的:使用[DATABASE]GO SET ANSI _ NULLS ON GO SET QUOTED _ IDENTIFIER ON GO 更改过程。[stored procedure](@ username varchar(10))as 从表名中选择用户名 输出是:array(0) { }这个数据库中有大量的数据。 我知道与数据库的连接是有效的,但当我
问题内容: 我正在从PHP中读取一个TEXT文件,并试图从中执行命令,例如创建一个DB及其具有的所有表和过程。我的代码创建表,但不创建文件中给定的存储过程。 PDO没有创建SP,那么将如何完成此任务?我尝试一起执行所有代码部分并逐行执行,但没有任何效果。 我正在尝试制作数据库安装程序脚本。 问题答案: 好吧,PMA帮助我回答了我自己的问题。 为了克服这个问题,您需要删除过程的定界符部分,以便查询变
我正在构建一个PHP应用程序。我需要做一个ajax调用一个PHP脚本,重新调整超文本标记语言代码。但是,我还需要接收一个变量以及PHP输出。我试图用JSON实现这一点,但是我得到了PHP输出或只是JSON数据。当我使用dataType:'json'在我的ajax调用: 我无法从PHP脚本中的“echo”获取输出: 因此,在jQueryAjax调用中,我需要接收作为PHP输出的“HelloWorld
赫杰。 我在执行我的代码时会收到这个错误信息?我在表单中发布值“2020-12-19”。我不知道1989年是从哪里来的... 消息: 代码: 最好的问候/Svante