对hsqldb执行立即

时间:2012-11-08 15:22:14

标签: java sql hsqldb

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

1 个答案:

答案 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