2012-11-08 481 views
1

我有一個帶有存儲過程的HSQL 2.x數據庫。這個過程生成一個我想執行的動態SQL字符串。在Oracle上,我通過命令立即執行命令。我很難找到HSQLDB的等價物。有人可以幫忙嗎?執行hsqldb立即執行

+0

正是你正在努力實現?如果您通過某些程序調用HSQL,例如Java然後你可能想在java端構造查詢並運行它。那應該沒問題? –

+0

應用程序應該針對不同的DBMS風格。存儲過程正在執行批量同步作業(不能依賴於休眠)。因此,在Java中構建SQL不是一種選擇。 – Jack

回答

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