如何从Laravel执行Oracle存储过程



当我尝试运行命令:

$ pdo = DB:连接(集团)→选择("exec prc_recebcobdsg("0","空","01-01-2021","27-01-2021","零")");

我的Laravel页面返回:错误码:900错误信息:ORA-00900:无效的SQL语句职位:0语句:exec prc_recebcobdsg('0', 'null','01-01-2021', '27-01-2021', 'null')绑定:[](SQL: exec prc_recebcobdsg("0","空","01-01-2021","27-01-2021","零"))

我错在哪里?

我不太了解Laravel,但我认为有两个问题。首先,exec实际上不是Oracle语句,它只是在sqlplus和sqldeveloper和其他客户端中可用的速记。通常需要将过程调用包含在开始/结束块中。第二个问题是,存储过程的执行并不是真正的选择,因此不能使用select方法进行连接。我相信你可以使用exec方法。像这样的代码应该可以工作:

DB::connection($group)->getPdo()->exec("begin prc_recebcobdsg('0', 'null','01-01-2021', '27-01-2021', 'null'); end;");

最新更新