Ich schrieb den folgenden PL/SQL-Block:Warum wird der Variablenname durch seinen Wert ersetzt, der bewirkt, dass '' xxx 'als Fehler deklariert werden sollte?
declare
v_name varchar2(20);
v_sal integer;
begin
EXECUTE IMMEDIATE ('CREATE TABLE EMP5 (name varchar2(20),sal integer,primary key(name))');
dbms_output.put_line('Enter name : ');
v_name:=&v_name;
dbms_output.put_line('salary : ');
v_sal :=&v_sal;
insert into emp5 (name,sal) values (v_name,v_sal);
end;
/
Und dann bekam ich die folgende Compiler-Ausgabe:
Enter a valeur for v_name : dhia
old 6 : v_name:=&v_name;
new 6 : v_name:=dhia;
Enter a valeur for v_sal : 10
old 8 : v_sal :=v_&sal;
new 8 : v_sal :=10;
v_name:=dhia;
*
ERREUR at line 6 :
ORA-06550: line 6, colon 7 :
PLS-00201: the identifier 'DHIA' should be declared
ORA-06550: line 6, colon 1 :
PL/SQL: Statement ignored
ORA-06550: line9, colon 13 :
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 9, colon 1 :
PL/SQL: SQL Statement ignored
Meine Frage ist, warum der Variable 'name' durch seinen Wert 'dhia' ersetzt in dem Skript, das diesen Fehler verursacht, und wie man es repariert?
Nein eigentlich, dies gibt die exakt gleiche Fehler msg, das ist, was ich zuerst dachte auch, aber es sieht aus wie der Variablenname nichts mit dem Problem zu tun haben, irgendwie krank ändern Sie es in der Frage –
@DhiaHassen haben Sie versucht EXECUTE COMMAND mit der INSERT-Abfrage als was in der obigen Antwort? –
Ja, ich habe Ihren Code oben kopiert und eingefügt, und ich habe den gleichen Fehler erhalten. Msg –