转义符的问题
PL/SQL里我写了个动态游标语句
v_sqlstr:= 'select a,bc from '||table_name||
' where a like substr(‘||xx||’,5,2) '
现在有这样一个问题XX,table_name是个字符串变量,比如是1234556,我希望最后的SQL语句是
v_sqlstr:= 'select a,bc from cc where a like substr( '1234556 ',5,2)这种,那么1234556这旁边的2个单引号怎么弄上去啊?如果加 ' ' '||XX|| ' ' ',结果后来的SQL变成了substr( '||XX|| ',5,2),XX没有被替换掉
------解决方案--------------------SQL>
SQL> declare
2 table_name varchar2(100) := 'test_table ';
3 xx varchar2(100) := 'ssssdr3w ';
4 v_sqlstr varchar2(100) := 'select a,bc from '||table_name|| ' where a like substr( ' ' ' || xx || ' ' ',5,2) ';
5 begin
6 dbms_output.put_line(v_sqlstr);
7 end;
8 /
select a,bc from test_table where a like substr( 'ssssdr3w ',5,2)
PL/SQL procedure successfully completed