1

我有一个带有存储过程的 HSQL 2.x 数据库。此过程生成我要执行的动态 SQL 字符串。在 Oracle 上,我使用执行立即命令执行此操作。我很难找到 HSQLDB 的等价物。有人可以帮忙吗?

4

1 回答 1

0

HSQLDB 不直接支持 SQL/PSM 语言例程中的动态 SQL。

执行此操作的方法是使用从 SQL 存储过程调用的 Java 存储过程来执行 SQL 字符串。

Java 存储过程有一个字符串 (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
于 2012-11-08T17:16:35.360 回答