当前位置: 首页 > 知识库问答 >
问题:

PHP/PDO调用过程,输出CLOB为json

向杜吟
2023-03-14

当我在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的关联,但没有任何效果。

感谢您的帮助。

共有1个答案

楮杰
2023-03-14

终于靠自己得到了。

我不知道为什么,但是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