0
我有一個從網頁(基於Java構建)編輯Oracle過程定義並編譯它的場景。會有可能嗎?如果是這樣,請讓我知道你的想法。這些過程可能包含帶有select/update語句的簡單業務邏輯。從網頁上修改過程
在此先感謝。
我有一個從網頁(基於Java構建)編輯Oracle過程定義並編譯它的場景。會有可能嗎?如果是這樣,請讓我知道你的想法。這些過程可能包含帶有select/update語句的簡單業務邏輯。從網頁上修改過程
在此先感謝。
這似乎不是一個標準的要求,但是,你應該能夠做到這一點。要從您打算修改的數據庫中獲取存儲過程的代碼,可以使用以下命令。
SELECT text FROM user_source WHERE name = 'procedure_name';
現在,您可以在可編輯文本框中顯示此語句返回的行。一旦用戶執行更改,您現在可以調用數據庫中的存儲過程來接受字符串。存儲過程可以是這樣的。
CREATE OR REPLACE PROCEDURE compile_proc
(
v_str IN VARCHAR2
)
IS
BEGIN
EXECUTE IMMEDIATE 'CREATE OR REPLACE PROCEDURE ' || v_str;
END;
/
現在,您將不得不從您的網頁調用此存儲過程並傳遞字符串。我可以試着展示如何通過PLSQL完成。
DECLARE
v_proc_text VARCHAR2(30000);
BEGIN
v_proc_text := 'sample_procedure AS
v_count NUMBER(1);
BEGIN
SELECT count(1) INTO v_count FROM dual;
END;';
compile_proc (v_proc_text);
END;
不用說,你將不得不採取一切時,你會編譯更改可能拋出的語義和句法錯誤的照顧。您可以從Oracle獲取返回碼並將其顯示給用戶。
類似於您的需求的東西在Oracle apex雲上實現。您可以創建一個免費帳戶並查看。
謝謝。我認爲這可能會幫助我挖掘更多。 –