我有一个带有存储过程的HSQL 2.x数据库。此过程生成我想要执行的动态SQL字符串。在Oracle上,我使用 execute immediate 命令执行此操作。我很难找到HSQLDB的等价物。有人可以帮忙吗?
答案 0 :(得分:0)
HSQLDB在SQL / PSM语言例程中没有动态SQL的直接支持。
执行此操作的方法是使用从SQL存储过程调用的Java存储过程执行SQL字符串。
Java存储过程有一个String(VARCHAR)参数,它是SQL语句。它使用jdbc:default:connection
创建JDBC语句并执行String参数中传递的SQL。
SQL过程可能如下所示:
CREATE PROCEDURE SQL_SP( ... ) LANGUAGE SQL ... BEGIN ATOMIC
DECLARE SQL_STRING VARCHAR(1000);
-- sql is generated here
CALL JAVA_SP(SQL_STRING);
END