日期:2014-05-17  浏览次数:21654 次

insert into select 要怎么用。报错显示ora-00947:没有足够的值
本帖最后由 u010821061 于 2013-12-12 13:13:42 编辑

         t.data_type ,
         c.COMMENTS 
  FROM   user_tab_columns t, user_col_comments c
 WHERE       t.table_name = c.table_name
         AND t.column_name = c.column_name
         AND t.table_name = 'HDSA0001'));






另外:SELECT   t.table_name ,
         t.column_name ,
         t.data_type ,
         c.COMMENTS 
  FROM   user_tab_columns t, user_col_comments c
 WHERE       t.table_name = c.table_name
         AND t.column_name = c.column_name
         AND t.table_name = 'HDSA0001'   本身是没有问题的。可以查出来数据

------解决方案--------------------
那也要写到select 里面啊! 不然语法有问题!
------解决方案--------------------
引用:
Quote: 引用:

select 查询出来的值得个数和要INSERT的值得个数不匹配


引用:
seq_Health_Dictionary.nextval 这个是啥东西?

insert into Health_Dictionary(dictionary_id,belong_table_name,column_name,column_data_type,column_describe)

(SELECT  @@identity  as dictionary_id,

t.table_name as belong_table_name,
         t.column_name as column_name,
         t.data_type as column_data_type,
         c.COMMENTS as column_describe
  FROM   user_tab_columns t, user_col_comments c
 WHERE       t.table_name = c.table_name
         AND t.column_name = c.column_name
         AND t.table_name = 'HDSA0001')


seq_Health_Dictionary.nextval 是一个序列


怀疑这个 @@identity  引起的,换成一个常量试一下吧