从网页更改程序
Alter Procedure from web page
我有一个从网页编辑 Oracle 过程定义的场景(基于 Java)并编译它。有可能吗?如果是这样,请让我知道您的想法。这些过程可能包含带有 select/update 语句的简单业务逻辑。
提前致谢。
这似乎不是标准要求,但是是的,您应该能够做到。要从您打算修改的数据库中获取存储过程的代码,您可以使用以下命令。
SELECT text FROM user_source WHERE name = 'procedure_name';
现在,您可以在可编辑的文本框中显示此语句编辑的行 return。一旦用户执行更改,您现在可以调用数据库中将接受字符串的存储过程。存储过程可以是这样的。
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 中获取 return 代码并将其显示给用户。
在 Oracle apex 云上实现了与您的要求类似的东西。您可以创建一个免费帐户并查看。
我有一个从网页编辑 Oracle 过程定义的场景(基于 Java)并编译它。有可能吗?如果是这样,请让我知道您的想法。这些过程可能包含带有 select/update 语句的简单业务逻辑。
提前致谢。
这似乎不是标准要求,但是是的,您应该能够做到。要从您打算修改的数据库中获取存储过程的代码,您可以使用以下命令。
SELECT text FROM user_source WHERE name = 'procedure_name';
现在,您可以在可编辑的文本框中显示此语句编辑的行 return。一旦用户执行更改,您现在可以调用数据库中将接受字符串的存储过程。存储过程可以是这样的。
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 中获取 return 代码并将其显示给用户。
在 Oracle apex 云上实现了与您的要求类似的东西。您可以创建一个免费帐户并查看。