END IF;          V_WHERESTR :=V_WHERESTR || 'S.IS_BARGE_FLAG = ''' || V_FIELDVALUE || '''';
向这里面的''''是代表什么?   '''又是代表什么   ’呢?

解决方案 »

  1.   

    -- 呵呵,'''(三个单引号在动态SQL语句中表示一个单引号!)你可以在后面加句: dbms_output.put_line(V_WHERESTR); 打印一下变量的结果!
      

  2.   

    'S.IS_BARGE_FLAG = ''' :左右各去掉一个单引号相当于S.IS_BARGE_FLAG = '
    '''':左右各去掉一个单引号相当于'
    所以最终效果相当于S.IS_BARGE_FLAG = '字段值'
      

  3.   

     ----- V_WHERESTR :=V_WHERESTR || 'S.IS_BARGE_FLAG = ''' || V_FIELDVALUE || '''';
    向这里面的''''是代表什么? '''又是代表什么 ’呢?
    具体的字符串
    最好还是打印一下输出
    dbms_output.put_line(V_WHERESTR);
      

  4.   

    || 是连接字符串的意思,相当于java里字符串相加的“+”号
      

  5.   


    我是新手,看到这么引号头晕呀、、
    v_sql:='select so_nbr, busi_code,so_org_id,so_date from '|| 
                        tb_name || ' where so_date >to_date('''||max_tm||''',''yyyy-mm-dd hh24:mi:ss'') and so_date <=to_date(to_char(sysdate,''yyyy-mm-dd hh24:mi:ss''),''yyyy-mm-dd hh24:mi:ss'') order by so_date';--
      

  6.   

    V_WHERESTR :=V_WHERESTR || 'S.IS_BARGE_FLAG = ''' || V_FIELDVALUE || '''';
    等效于
    V_WHERESTR :=V_WHERESTR || 'S.IS_BARGE_FLAG = ' || V_FIELDVALUE;''''这样写就是冗余,多引了一遍而已
      

  7.   

    '''' 这个这样来理解,最外层的两个 ' 代表,这是一个字符串的起始
    中间连续两个 '' 代表一个 ' 的字符串
    例如 str varchar2(10) := ''''; 实际 str 这个字符串的值就是一个单引号str = 'where a = ''' || other_str || '''';同样的,第一部分  'where a = '''
    最外层两个' 表示这一部分字符串的起始位置
    两个连续的 '' 表示一个单引号,也就是说第一部分的字符串实际为 where a = '
    || other_str 表示连接一个 other_str 的字符串变量,假设 other_str := 'test'
    那么前两部分的字符串连起来就是where a = 'test
    最后 || '''',上面说了,这代表一个单引号,所以最终连接起来就是where a = 'test'总之,把握两点
    最外层表示字符串开始和截止,中间连续 '' 则转义为一个单引号 
      

  8.   


    '''' == '
     'S.IS_BARGE_FLAG = '''   相当于  S.IS_BARGE_FLAG = '