使用动态SQL插入,ORA-00984: 列在此处不允许

创建一张日志表:

create table import_log (batch_id number,content varchar2(500));
comment on column import_log.batch_id is ' 批次号';
comment on column import_log.content is ' 内容';


错误:

使用动态SQL插入,ORA-00984: 列在此处不允许_第1张图片

问题出现的原因:out_meg:='数据';是字符类型,所以在动态sql已经加单引号。修改如下:

 

declare
l_sql varchar2(1000);
l_pici number;
out_meg varchar2(500);
begin
out_meg:='数据';
l_pici :=1;
l_sql:= 'insert into import_log
        (batch_id,
        content)
        values ('||l_pici||','''||out_meg||''')';
dbms_output.put_line(l_sql);
execute immediate l_sql;
commit;
end ;



使用动态SQL插入,ORA-00984: 列在此处不允许_第2张图片

你可能感兴趣的:(Development)