I'm trying to run this sql script in oracle and get an error
ORA-00984: column not allowed here.
declare
tablename varchar2(200):='imagesroom';
temp varchar2(50):='room_id';
iid number:=1;
dir varchar2(200):='imgdirroom';
in_fname varchar2(100):='img1.jpg';
obj ORDIMAGE;
ctx RAW(64) := NULL;
begin
execute immediate 'INSERT INTO '||tablename||'('||temp||',extension,icon)
VALUES(iid,'''',ORDImage(''FILE'',upper(dir),in_fname))
RETURNING icon INTO obj';
end;
/
ERROR at line 1:
ORA-00984: column not allowed here
ORA-06512: at line 10
This one works great
INSERT INTO imagesroom(room_id,extension,icon)
VALUES(iid,'',ORDImage('FILE',upper(dir),in_fname))
RETURNING icon INTO obj;
What's wrong with it?
if I do it this way
execute immediate 'INSERT INTO :table(:type,extension,icon)
VALUES(:id,'''',ORDImage(''FILE'',upper(:dir),:fname)) RETURNING icon INTO obj'
using tablename,temp,iid,dir,in_fname;
then
ERROR at line 1:
ORA-00903: invalid table name
ORA-06512: at line 10
appear...