2016-05-10 7 views
0

Ich habe ein Szenario der Bearbeitung der Definition von Oracle-Prozeduren von der Webseite (auf Java aufbauen) und kompilieren Sie es. Wird es möglich sein? Wenn ja, lass mich deine Gedanken wissen. Die Prozeduren können eine einfache Geschäftslogik mit Anweisungen zum Auswählen/Aktualisieren enthalten.Ändere Prozedur von Webseite

Vielen Dank im Voraus.

Antwort

2

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/

+0

Vielen Dank. Ich denke, das könnte mir helfen, mehr zu graben. –