【问题标题】:Execute Immediate for hsqldb立即执行 hsqldb
【发布时间】:2012-11-08 15:22:14
【问题描述】:

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

【问题讨论】:

  • 您到底想达到什么目的?如果您通过某些程序调用 HSQL,例如Java 那么您可能想在 java 端构建查询并运行它。应该没问题吧?
  • 该应用程序应该适用于不同的 DBMS 风格。存储过程正在执行批量同步作业(不能依赖休眠)。因此,在 Java 中构建 SQL 不是一种选择。

标签: java sql hsqldb


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    相关资源
    最近更新 更多