我尝试使用Oracle数据库使用LEFT JOIN编写以下Insert select查询:
OnFragmentInteractionListener
这给出了以下错误:
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 ;
一个表的DDL是:
ORA-00904 : "NUM_ROWS" : invalid identifier
答案 0 :(得分:2)
问题是声明的INSERT部分:
insert into tables (TABLE_NAME,DATA_LENGTH,NUM_ROWS)
括号中的子句指定插入表中的目标列。您的版本使用查询表中列的名称,这些列与tables
中的列不同。该子句是可选的:我们只需要在不填充所有列时指定目标列。但如果它在那里,名称需要匹配,所以
insert into tables (name_tables,tuple,taille_tuple)