Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 运行plsql并获取DBMS_OUTPUT.PUT_行(yii)_Php_Oracle_Yii_Package_Dbms Output - Fatal编程技术网

Php 运行plsql并获取DBMS_OUTPUT.PUT_行(yii)

Php 运行plsql并获取DBMS_OUTPUT.PUT_行(yii),php,oracle,yii,package,dbms-output,Php,Oracle,Yii,Package,Dbms Output,我正在用oracle数据库和yii框架开发一个web应用程序 $connection = Yii::app()->oo; $command = $connection->createCommand("DECLARE V_COD NUMBER; v_Return DATA.FIND.T_REG; BEGIN V_COD := 1529; v_Return := FIND.DATA( V_COD => V_COD ); DBMS_OUTPUT.PUT_L

我正在用oracle数据库和yii框架开发一个web应用程序

    $connection = Yii::app()->oo;
    $command = $connection->createCommand("DECLARE V_COD NUMBER; v_Return DATA.FIND.T_REG;
BEGIN
 V_COD := 1529;
 v_Return := FIND.DATA(
   V_COD => V_COD
 );
DBMS_OUTPUT.PUT_LINE('CODE, '|| V_RETURN.CODE ||' WITH SERIE: '||V_RETURN.SERIE);
END;");


        $rows = $command->execute();
        print_r($rows);
执行查询return1,我想得到一条消息output DBMS\u output.PUT\u行。 我该怎么做? 有什么想法吗?
提前感谢

您真的,真的,真的不想构建一个依赖于dbms\u输出的应用程序。如果您碰巧不能使用真正的调试器,dbms_输出主要作为调试代码的一种快速而肮脏的方式存在。通常,您不应该假设dbms_输出的缓冲区已经声明,缓冲区足够大,可以写入任何您想要写入的内容,或者人类可以看到写入dbms_输出缓冲区的内容。大多数客户机工具都不会声明这样的缓冲区,如果确实创建了缓冲区,也不会从中读取

向客户机返回数据的正确方法是让代码直接调用函数。如果函数返回的数据类型是框架无法处理的,则创建一个单独的包装过程,该过程调用第一个函数,并为代码和序列创建两个OUT参数。在调用中使用绑定变量,并从代码中绑定1529之类的值

如果您真的,真的,真的想从缓冲区中读取,假设它存在,那么您需要在同一会话中调用dbms_output.get_行