Ich habe eine PL \ SQL-Skript, wo ich den Tabellennamen im Skript auf eine Variable festgelegt werden soll. Aus einigen Beispielen, die ich im Internet gefunden habe, habe ich den folgenden Code geschrieben. Der erste Abschnitt funktioniert, also denke ich, dass meine allgemeine Syntax korrekt ist, aber der zweite Abschnitt, in dem ich versuche, eine Variable für einen Tabellenname zu verwenden, enthält Fehler ("SQL-Fehler: ORA-00903: ungültiger Tabellenname").Wie verwende ich eine Variable in Oracle-Skript für den Tabellenname
Jeder weiß, was ich falsch mache ... Ich mache nicht viel PL \ SQL, vielleicht fehlt mir einfach etwas Offensichtliches.
--works
variable numOfrecords number;
exec :numOfrecords := 10;
select * from customers2008 where rownum < :numOfrecords;
--does not work
variable tableNm CHAR;
exec :tableNm := 'customers2008';
print tableNm;
select * from :tableNm;
Nur zur Info: Basierend auf Ihren Beispielen verwenden Sie nicht wirklich PL/SQL. Ich denke du meinst, dass du ein SQLPlus-Skript hast. Technisch gesehen rufen Ihre exec-Befehle PL/SQL auf, aber insgesamt zeigen Sie hier SQLPlus-Befehle an. –
Nun, technisch verwendet er beide - der variable Befehl im Skript deklariert eine PL/SQL Bindevariable. –