EXECUTE IMMEDIATE ' Kommandos '
Ist es möglich ausführen einer sql-Befehle innerhalb einer EXECUTE IMMEDIATE-block?
Was ist falsch mit dieser syntax:
declare
pragma autonomous_transaction;
begin
execute immediate
'begin
COMMENT ON TABLE t1 IS ''description1'';
COMMENT ON TABLE t2 IS ''description2'';
end;';
end;
Für einen SQL-Befehl funktioniert es einwandfrei:
declare
pragma autonomous_transaction;
begin
execute immediate ' COMMENT ON TABLE t1 IS ''description1'' ';
end;
- Warum müssen Sie es tun, in einer einzigen Anweisung?
- Welche Fehler sind Sie immer?
- Ausgeführte Anweisung erfordert weniger refactoring)
- Ist die falsche Verwendung von "execute immediate" - Befehl. Verständnis, dass die erste Anweisung von PL/SQL und der zweite DDL-hat mir sehr geholfen. Nochmals danke, Shannon!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
begin
end
innerhalb der Zeichenfolge zu execute immediate wird behandelt, wie ein PL/SQL anonymen block. DDL -, wieCOMMENT
ist nicht erlaubt in PL/SQL. Wenn Sie es waren, würden Sie nicht brauchen, verwenden Sie execute immediate. Oracle im wesentlichen funktioniert entweder mit einem block von PL/SQL-Anweisung oder eine einzelne SQL-Anweisung zu einem Zeitpunkt. Es gibt zwar APIs-batch-SQL-Anweisungen zu.So, laufen
COMMENT
innerhalb eines PL/SQL-block oder einer Prozedur, werden Sie brauchen, umexecute immediate
Aussagen.Ohne mehr Kontext kann ich nicht intelligent kommentieren, ob das der richtige Ansatz, oder wenn es nur mit den beiden comment-Anweisungen stehen allein besser werden würde.
Gut, Sie könnte hierzu:
Aber es gibt nicht viel Punkt.