0

以下のクエリを見てください。DB: オラクル

select table_name, column_name, data_type from all_tab_cols 
where
data_type = 'DATE' and
OWNER = 'OWNER_NAME'

O/P:

TABLE_NAME COLUMN_NAME DATA_TYPE
T1         C1          DATE
T1         C2          DATE
T2         C3          DATE
T2         C4          DATE

今、私は完全に結果を得ました。さらに処理するクエリを作成したいと思います。についての結果から、table_name、column_name をピックアップし、column_name にフィルターを適用したいと思います。

例:

TABLE: T1
C1            c2
01-01-2001    01-01-2011
02-02-1990    05-05-1700
03-03-1753    10-10-1764

同様に、別のテーブル...簡単に言えば、日付フィールドの年が特定の年よりも小さいDBのすべての列が必要です。やってみましたが出来ませんでした。

4

1 に答える 1

3

私はそれを持っている..

このクエリはそれを行います..

select table_name
      , column_name
      ,to_number(extractvalue(
       xmltype(dbms_xmlgen.getxml(
       'select count(*) c from '||owner||'.'||table_name ||' WHERE extract(year from ' || column_name || ') < 1753'
       ))
       ,'/ROWSET/ROW/C')) as count1

from all_tab_cols
where
data_type = 'DATE' and
OWNER = 'OWNER_NAME'
于 2013-05-20T05:30:06.873 に答える