Oracle 变量。不。。。不要使用替换。对SQL字符串使用Q引号语法!replace函数实际上在这里做什么?这和我的输出是一样的expecting@mathguy也不要那样做;使用绑定参数。@MT0此选项。我们有大约一百行长的动态sql查询,它们使用数十个(通常是可选

Oracle 变量。不。。。不要使用替换。对SQL字符串使用Q引号语法!replace函数实际上在这里做什么?这和我的输出是一样的expecting@mathguy也不要那样做;使用绑定参数。@MT0此选项。我们有大约一百行长的动态sql查询,它们使用数十个(通常是可选,oracle,plsql,oracle12c,Oracle,Plsql,Oracle12c,变量。不。。。不要使用替换。对SQL字符串使用Q引号语法!replace函数实际上在这里做什么?这和我的输出是一样的expecting@mathguy也不要那样做;使用绑定参数。@MT0此选项。我们有大约一百行长的动态sql查询,它们使用数十个(通常是可选的)绑定参数。我不想想象,若将所有可能的错误直接连接到查询中,调试这些错误会有多困难。所以,即使你只有两个变量,也要习惯于练习。如果acct\u nbr字符串中嵌入了单引号,那就行不通了,不是吗?这就是造成OP问题的原因;我想这个解决方案不能解


变量。不。。。不要使用替换。对SQL字符串使用Q引号语法!replace函数实际上在这里做什么?这和我的输出是一样的expecting@mathguy也不要那样做;使用绑定参数。@MT0此选项。我们有大约一百行长的动态sql查询,它们使用数十个(通常是可选的)绑定参数。我不想想象,若将所有可能的错误直接连接到查询中,调试这些错误会有多困难。所以,即使你只有两个变量,也要习惯于练习。如果
acct\u nbr
字符串中嵌入了单引号,那就行不通了,不是吗?这就是造成OP问题的原因;我想这个解决方案不能解决问题。@mathguy修复了。你为什么在那里使用:1?如果
acct\u nbr
字符串中嵌入了单引号,它就不起作用了,是吗?这就是造成OP问题的原因;我想这个解决方案不能治愈。@mathguy修复了。你为什么在那里使用:1?
declare
vquery long;
cursor c1 is
select * from ot.config1;
begin
for i in c1
loop
vquery :='INSERT INTO all_acc_num(code,nbr_value) 
select '''||i.acct_nbr||''','||i.acct_nbr||' from ot.stu';
commit;
execute immediate vquery;
end loop;

end;
/
ORA-01756: quoted string not properly terminated
ORA-06512: at line 10
declare
  vquery varchar2(32767);
  cursor c1 is select * from config1;
begin
  for i in c1 loop
    vquery :='INSERT INTO all_acc_num(code,nbr_value) 
              select '''||replace(i.acct_nbr, '''', '''''')||''', '||i.acct_nbr||' from ot.stu a';
    dbms_output.put_line(vquery);
    -- execute immediate vquery;
  end loop;
end;
INSERT INTO all_acc_num(code,nbr_value) 
select :1,REGEXP_REPLACE(a.name,'/*/') from stu a
CODE | NBR_VALUE :--------------------------- | :-------- REGEXP_REPLACE(a.name,'/*/') | as REGEXP_REPLACE(a.name,'/*/') | bb REGEXP_REPLACE(a.name,'/*/') | cc