我正在尝试将随机生成数据插入表格,这里是代码“
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;
/
表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(1300))||');'; 结束;错误报告:ORA-00911:无效字符ORA-06512:第3行 00911. 00000 - “无效字符” *原因:标识符可能不以除以外的任何ASCII字符开头 字母和数字。第一个之后也允许$#_ 字符。双引号括起来的标识符可能包含 除了双引号之外的任何字符。替代报价 (q'#...#')不能使用空格,制表符或回车符 分隔符。对于所有其他上下文,请参阅SQL语言 参考手册。 *操作:
为什么?逗号,引号..一切都经过检查和罚款。
答案 0 :(得分:3)
为什么你使用execute immediate来做这件事。尝试按级别连接。
select prac_seq.nextval, 'name'||level, trunc(dbms_random.value(1,300)) as rnd
from dual
connect by level <= 300;
答案 1 :(得分:1)
尝试从动态查询中删除$(function(){
$("#inventoryitem").change(function(){
console.log($(this).val); // Instead of alert i prefer you to use console
})
})
。