立即执行 hsqldb
Posted
技术标签:
【中文标题】立即执行 hsqldb【英文标题】:Execute Immediate for hsqldb 【发布时间】:2012-11-08 15:22:14 【问题描述】:我有一个带有存储过程的 HSQL 2.x 数据库。此过程生成我要执行的动态 SQL 字符串。在 Oracle 上,我使用 execute immediate 命令执行此操作。我很难找到 HSQLDB 的等价物。有人可以帮忙吗?
【问题讨论】:
您到底想达到什么目的?如果您通过某些程序调用 HSQL,例如Java 那么您可能想在 java 端构建查询并运行它。应该没问题吧? 该应用程序应该适用于不同的 DBMS 风格。存储过程正在执行批量同步作业(不能依赖休眠)。因此,在 Java 中构建 SQL 不是一种选择。 【参考方案1】: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
【讨论】:
以上是关于立即执行 hsqldb的主要内容,如果未能解决你的问题,请参考以下文章