我要将一个数据库A中的数据抽取到数据库B,数据库A中的表分为两种,一种有op_date,一种没有op_date;有op_date的表抽取今年上半年的数据。
 抽取语句如下:抽取日期为20160101-20160701 column_name = 'OP_DATE' 的表
select 'create table ' || table_name || ' as select * from ' || table_name ||
       '@link_a   where op_date>=to_date(20160101,yyyymmdd) and op_date<to_data(20160701,yyyymmdd);'
  from dba_tables
 where owner = 'ZZZ'
   AND table_name in
       (select table_name from dba_TAB_COLUMNS where column_name = 'OP_DATE') 抽取日期为20160101-20160701 不含column_name = 'OP_DATE' 的表       
select 'create table ' || table_name || ' as select * from ' || table_name ||
       '@link_a;'
  from dba_tables
 where owner = 'ZZZ'
   AND table_name not in
       (select table_name from dba_TAB_COLUMNS where column_name = 'OP_DATE')  

解决方案 »

  1.   

    plsql中运行没反应没反应,是什么意思 ?
      

  2.   

    在command窗口运行后显示:SQL>
        7'CREATETABLE' || TABLE_NAME || 'AS
    --------------------------------------------------------------------------------------------------------
    不知道啥地方出问题了
      

  3.   

      from dba_tables
     where owner = 'ZZZ'
       AND table_name in
           (select table_name from dba_TAB_COLUMNS where column_name = 'OP_DATE')
    没有符合条件的记录;用户是 ZZZ 吗 ?
      

  4.   

    5# ,看你没查出数据来, 这说明这两个条件不满足;1. 要么 ZZZ 你写的不对;
    2. 要么 没有 OP_DATE 这个样列名;
      

  5.   

    select table_name from dba_TAB_COLUMNS where column_name = 'OP_DATE'  单独执行看看。