SQL> INSERT INTO anno
  2  SELECT count(servername),'AB', itoservername, SYSDATE-1 AS creationdate, 'ausd04  3  FROM hist_notifications
  4  WHERE
  5  application != 'ABAck'
  6  AND object != 'ABAck'
  7  AND notificationstatus = 0
  8  AND to_char(creationdate, 'yyyymmdd') = to_char(SYSDATE-1,'yyyymmdd')
  9  Group by servername;
Group by servername
         *
µÚ 9 ÐгöÏÖ´íÎó:
ORA-01722: invalid number运行这个select是没有问题的.为什么加入的insert into table就不行了.

解决方案 »

  1.   

    INSERT INTO anno (column1,column2,.....)
    SELECT count(servername),'AB', itoservername, SYSDATE-1 AS creationdate, 'ausd04   3  FROM hist_notifications 
      4  WHERE 
      5  application != 'ABAck' 
      6  AND object != 'ABAck' 
      7  AND notificationstatus = 0 
      8  AND to_char(creationdate, 'yyyymmdd') = to_char(SYSDATE-1,'yyyymmdd') 
      9  Group by servername; 
    Group by servername 
            * 
    µÚ 9 ÐгöÏÖ´íÎó: 最好寫上要插入的字段。看信息可能是你插入的類型不匹配。
      

  2.   

    看了下类型 长度都没有什么问题.也没有什么外建的制约.
    报的错是ora-01722 invalid number INSERT INTO anno 
      2  SELECT to_number (count(servername)),'AB', to_char(itoservername), SYSDATE-1 AS creationdate, 'ausd04'   3  FROM hist_notifications 
      4  WHERE 
      5  application != 'ABAck' 
      6  AND object != 'ABAck' 
      7  AND notificationstatus = 0 
      8  AND to_char(creationdate, 'yyyymmdd') = to_char(SYSDATE-1,'yyyymmdd') 
      9  Group by servername; 
    做select的时候倒是没什么问题.