在ORACLE中插入select

在ORACLE中插入select,oracle,Oracle,我尝试使用Oracle数据库编写以下具有左联接的插入选择查询: insert into tables (TABLE_NAME,DATA_LENGTH,NUM_ROWS) SELECT user_tables.TABLE_NAME ,SUM(ALL_TAB_COLUMNS.DATA_LENGTH) ,user_tables.NUM_ROWS FROM user_tables LEFT JOIN ALL_TAB_COLUMNS O

我尝试使用Oracle数据库编写以下具有左联接的插入选择查询:

 insert  into tables  (TABLE_NAME,DATA_LENGTH,NUM_ROWS) 
 SELECT user_tables.TABLE_NAME
         ,SUM(ALL_TAB_COLUMNS.DATA_LENGTH)
        ,user_tables.NUM_ROWS 
  FROM user_tables 
  LEFT JOIN ALL_TAB_COLUMNS 
      ON user_tables.TABLE_NAME = ALL_TAB_COLUMNS.TABLE_NAME 
  WHERE OWNER= 'SYSTEM' 
  AND (user_tables.TABLE_NAME ='TIMELEVEL' 
      OR user_tables.TABLE_NAME ='CHANLEVEL'
      OR user_tables.TABLE_NAME = 'CUSTLEVEL' 
     OR user_tables.TABLE_NAME = 'PRODLEVEL'
     OR user_tables.TABLE_NAME = 'ACTVARS' ) 
 GROUP BY user_tables.TABLE_NAME ;
这会产生以下错误:

ORA-00904 : "NUM_ROWS" : invalid identifier
一个表的DDL为:

CREATE  TABLE  tables (name_tables VARCHAR2(60)
      ,tuple VARCHAR2(50),
       taille_tuple VARCHAR2(50))

问题在于语句的插入部分:

insert  into tables  (TABLE_NAME,DATA_LENGTH,NUM_ROWS) 
括号中的子句指定插入表中的目标列。您的版本使用查询表中列的名称,这些名称与
表中的列不同。这个子句是可选的:我们只需要在不填充所有列时指定目标列。但是如果它在那里,名字需要匹配,所以

insert  into tables  (name_tables,tuple,taille_tuple) 

Oracle数据库和mysql有什么区别?您的表创建语句显示它没有名为
num\u rows
的列。或者插入
中的任何其他列名。你刚才误解了插入语法吗?戴着那顶帽子,有一刻你看起来像比利·乔尔的一首歌中的一句话:“你手里拿着多姆·佩里尼翁,鼻子上挂着月亮”…:-)@BobJarvis-现在我是“我们没有点火”: