我正在尝试将随机生成数据插入表中,这里是代码“
begin
FOR x in 1..300 LOOP
Execute immediate 'insert into emp values ('||prac_seq.nextval||','''||'name'||x||''','||trunc(dbms_random.value(1,300))||');';
end loop;
/
table emp 有3列 - id , name , idmgr ;
执行立即语句中的上述查询如下所示:
insert into emp values (13,'name25',193);
这个块没有运行 . 当我试图运行单个执行立即声明(f.e.
begin
Execute immediate 'insert into emp values ('||prac_seq.nextval||','''||'name23'','||trunc(dbms_random.value(1,300))||');'
end;
/
ORA给了我一个错误:
立即执行'插入emp值('|| prac_seq.nextval ||','''||'name23'','|| trunc(dbms_random.value(1,300))||');';结束;错误报告:ORA-00911:无效字符ORA-06512:第3行00911. 00000 - “无效字符”*原因:标识符不能以字母和数字以外的任何ASCII字符开头 . 第一个字符后也允许$#_ . 双引号括起来的标识符可以包含除doublequote之外的任何字符 . 替代引号(q'#...#')不能使用空格,制表符或回车符作为分隔符 . 对于所有其他上下文,请参阅SQL语言参考手册 . *行动:
为什么?逗号,引号..一切都经过检查和罚款 .
本文探讨了在尝试使用PL/SQL块批量插入数据到Oracle数据库表时遇到的问题。主要关注如何修正因无效字符引发的ORA-00911错误,并提供了解决方案。
415

被折叠的 条评论
为什么被折叠?



