【发布时间】:2021-10-18 15:33:49
【问题描述】:
我正在尝试使用 groovy 执行 oracle PL/SQL 过程,但出现异常。据我了解,这是由于这些初始线-
SET SERVEROUTPUT ON
SET FEEDBACK OFF
execute dbms_output.enable(buffer_time);
我的代码如下所示:
Connection con=DriverManager.getConnection(url,username,password);
def sql= new Sql(con)
String stmt= " SET SERVEROUTPUT ON
SET FEEDBACK OFF
execute dbms_output.enable(buffer_time);
declare
//some varaibles
begin
//code
dbms.output.put.line(variable)
end
"
sql.execute(stmt);
当我删除前 3 行时,我没有收到任何错误,但不会有输出,因为我使用的是 dbms.output.put.line,因此它们是必要的。如何解决从初始行得到的 SQL 语法异常?
【问题讨论】:
-
“我得到异常”“我得到错误” - 什么异常?什么错误?
-
在 99.99999% 的情况下,使用
dbms_output将数据返回给调用应用程序是没有意义的。dbms_output更像是一个粗略的调试工具。例如,声明一个返回值的函数并从您的客户端调用该函数通常会更有意义。或带有out参数的过程。 -
前 3 行不起作用,因为它们是 SQL*Plus 命令,而不是 PL/SQL。我认为它不会解决您的问题,但您可以将
dbms_output.enable();移到begin之后,它会运行。