Php 运行plsql并获取DBMS_OUTPUT.PUT_行(yii)
我正在用oracle数据库和yii框架开发一个web应用程序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
$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_行