v_SQL := ' INSERT INTO wuxianglai.BAOJIANHUI_KEYVALUE(KEMU,JIGOU,VALUE1,VALUE2,YEAR,MONTH) ' ||
           ' SELECT a.KEMU,a.JIGOU,a.VALUE1,SUM(nvl(b.KeyValue,0)), ' || p_year || ',' || p_month ||
           ' FROM wuxianglai.BAOJIANHUI_SHUJU b,wuxianglai.BAOJIANHUI_TMPKEYVALUE a ' ||
           ' WHERE a.JiGou = b.DIQU ' || 
           ' AND b.key in ' || p_KeMuDaiMa2 ||
       ' AND year = ' || p_year || ' and month = ' || p_month || 
   ' AND intervaltype = ' || p_intervaltype ||
           ' GROUP BY a.kemu,a.jigou,a.value1';  
朋友们知道||到底什么个意思我不大明白
还有insert into后面为什么不跟values是不是oracle中可以这样写
谁能给我注释下这段代码要表面什么个意思马上结贴!!

解决方案 »

  1.   

    ||是字符串连接的意思insert into 之后如果是字段就不用values,如果没有插入的具体字段,而是插入全部字段的值,就要用values,这是个sql标准用法,不是oracle特有
      

  2.   

    上面说法有点问题,不用values是由于后面是使用select语句来获取插入数值,select出来的字段必须和前面要插入的相匹配,不是oracle特有的用法,所有数据库都可以这么玩,用values是直接插入具体的数值