请问如何在拼接一个 Dynamic SQL时 不让 单引号'被屏蔽?不知道我是否已经描述清楚,请各位大虾帮忙一下

解决方案 »

  1.   

    单引号,在pl/sql中使用''''表示.
      

  2.   

    --------------------------------------------------------------
    您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
    您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
    http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选复选的90位数据库工程师将与您展开积极的互动。
    一方面,他们会为您的问题提供满意的答案,
    另一方面,也邀请您为他们投上宝贵的选票。2006-7-8 ~ 2006-7-25日,每天我们将从当天参与"有奖投票"的网友
    中抽取3名幸运者,赠送由IBM提供的精美礼品一份!此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
    http://www.bestdba.cn/match_discussion3.aspx?pointid=232&pointid2=1&pointid3=5&pcount=stc非常感谢您对本次活动的支持!
    --------------------------------------------------------------
      

  3.   

    select 'select 1 from tab_name where id = ''1''' from dual 两个单引号表示一个单引号
      

  4.   

    李强(苏州)
    注册日期: Jul,2006 
    发贴数: 0  把一个单引号变成两个 
    用函数 replace(var or column, '''', '''''')
      

  5.   

    盖国强
    注册日期: Jul,2006 
    发贴数: 1  Oracle可以参考如下: 
    SQL> set serveroutput on 
    SQL> declare 
    2 l_string varchar2(20); 
    3 begin 
    4 l_string :='eygle is a ''dba'''; 
    5 dbms_output.put_line(l_string); 
    6 end; 
    7 / 
    eygle is a 'dba' PL/SQL procedure successfully completed. SQL>
      

  6.   

    邹建
    注册日期: Jul,2006 
    发贴数: 0  如果是想不被程序的过滤处理掉, 可以用"做为字符串的定界符 
    SET QUOTED_IDENTIFIER OFF 
    declare @s varchar(8000) 
    set @s="select col1=""abc""" 
    EXEC(@s)
      

  7.   

    用两个 单引号, 代表字符串里的一个单引号:例如:create or replace procedure test_ss is
      s varchar2(100);
    begin
      s:='select '' from dual';
      execute immediate s;
    end;