类似语句是这样的,但是运行不了:
   insert into  REPORTTABLEFIELDS(TABLENAME,TABLEFEILD,FEILDTYPE) values(
select table_name,column_name,data_type from dba_tab_columns
where upper(column_name) not in(select upper(TABLEFEILD) from REPORTTABLEFIELDS where upper(TABLENAME)=upper(dba_tab_columns.TABLE_NAME))
and upper(dba_tab_columns.table_name)=upper('tttt')) 可否将这种问题用SQL语句实现

解决方案 »

  1.   

    try:   insert into  REPORTTABLEFIELDS set(TABLENAME,TABLEFEILD,FEILDTYPE)=(
    select table_name,column_name,data_type from dba_tab_columns
    where upper(column_name) not in(select upper(TABLEFEILD) from REPORTTABLEFIELDS where upper(TABLENAME)=upper(dba_tab_columns.TABLE_NAME))
    and upper(dba_tab_columns.table_name)=upper('tttt'))
      

  2.   

    insert into  REPORTTABLEFIELDS(TABLENAME,TABLEFEILD,FEILDTYPE) 
      select table_name,column_name,data_type 
        from dba_tab_columns
        where upper(column_name) not in(
          select upper(TABLEFEILD) 
            from REPORTTABLEFIELDS 
            where upper(TABLENAME)=upper(dba_tab_columns.TABLE_NAME))
        and upper(dba_tab_columns.table_name)=upper('tttt')
      

  3.   

    insert into  REPORTTABLEFIELDS(TABLENAME,TABLEFEILD,FEILDTYPE) 
    select table_name,column_name,data_type from dba_tab_columns
    WHERE ................