Dies scheint keine Standardanforderung zu sein, aber ja, Sie sollten es tun können. Zum Abrufen des Codes der gespeicherten Prozedur aus der Datenbank, die Sie ändern möchten, können Sie den folgenden Befehl verwenden.
SELECT text FROM user_source WHERE name = 'procedure_name';
Jetzt können Sie die von dieser Anweisung zurückgegebenen Zeilen in einem editierbaren Textfeld anzeigen. Sobald der Benutzer die Änderungen durchführt, können Sie jetzt eine gespeicherte Prozedur in der Datenbank aufrufen, die die Zeichenfolge akzeptiert. Die gespeicherte Prozedur kann in etwa so aussehen.
CREATE OR REPLACE PROCEDURE compile_proc
(
v_str IN VARCHAR2
)
IS
BEGIN
EXECUTE IMMEDIATE 'CREATE OR REPLACE PROCEDURE ' || v_str;
END;
/
Jetzt müssen Sie diese gespeicherte Prozedur von Ihrer Webseite aufrufen und die Zeichenfolge übergeben. Ich kann versuchen, zu zeigen, wie es über PLSQL gemacht werden kann.
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;
Unnötig zu sagen, dass Sie kümmert sich um alle semantischen und syntaktischen Fehler nehmen haben, die geworfen werden können, wenn Sie die Änderungen kompilieren. Sie können die Rückgabecodes möglicherweise von Oracle abrufen und dem Benutzer anzeigen.
Etwas Ähnliches wie Ihre Anforderung ist in der Oracle Apex Cloud implementiert. Sie können ein kostenloses Konto erstellen und es überprüfen.
https://apex.oracle.com/
Vielen Dank. Ich denke, das könnte mir helfen, mehr zu graben. –