【问题标题】:Alter Procedure from web page从网页更改程序
【发布时间】:2016-05-10 04:21:29
【问题描述】:

我有一个从网页(基于 Java 构建)编辑 Oracle 过程定义并编译它的场景。有可能吗?如果是这样,请让我知道你的想法。这些过程可能包含带有选择/更新语句的简单业务逻辑。

提前致谢。

【问题讨论】:

    标签: oracle stored-procedures java-stored-procedures


    【解决方案1】:

    这似乎不是标准要求,但是是的,您应该能够做到。要从您打算修改的数据库中获取存储过程的代码,您可以使用以下命令。

    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 顶点云上实现了与您的要求类似的东西。您可以创建一个免费帐户并查看它。

    https://apex.oracle.com/

    【讨论】:

    • 谢谢。我认为这可能有助于我挖掘更多。
    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 2020-10-20
    相关资源
    最近更新 更多