stmt_ := 'SELECT sum(round('||stmt_||',2)) FROM '||'ACCOUNTING_BALANCE_AUTH'||
           '       WHERE '|| sql_where_ ||
           ' AND COMPANY = '''||company_id_||''''||
           ' AND accounting_year = '||year_||
           ' AND accounting_period BETWEEN  '||period_from_||'  AND  '||period_to_;
这段代码看着有点糊涂,哪位高人帮指点一下,谢谢

解决方案 »

  1.   

    基本的sql拼接,对你的唯一难点是四个单引号的使用,拼接时,在oracle的字符串中要包含单引号,那么对应的单引号需要写两个.所以''',就变成了'''';
      

  2.   

    就是一个简单的字符串拼接..
    你把这段话有dbms_output.put_line打印出来看看就明白了...
      

  3.   

    动态SQL噢
    最搞的就是'的用法
    原来没有的地方开头或者结尾加一个
    原来一个地方变两个
    原来在语句开头或者结尾的变成三个,单独的变成四个