2016-04-20 33 views
0

私は分析したいと思っているOracleクエリーを持っています。テーブルtrack_tableactiveパーティションです。私はパーティション化について多くの知識を持っていません。この分割がどのような条件で作成されたかを確認したい。私のテーブルがパーティション化されているかどうかを確認するには、私はクエリの下で使用し、PARTITION_NAMEtrack_tableテーブルでアクティブであると言います。以下はoracleパーティションのアクティブ条件テーブル

SELECT * FROM dba_tab_partitions WHERE table_name = 'track_table'; 

私は分析するクエリです:

select count(*) as cnt 
from track_table partition (active) 
where trg_id > 198754 
     and status not in (2); 
+0

あなたはテーブル定義を見ることができませんか?ツールのスキーマブラウザ(Toad、sqldeveloper、plsqldeveloper)を使用して、テーブルのDDL /スクリプトを表示します。パーティションセクションがあり、パーティション定義が表示されます。 –

+0

どのツールからもチェックができません。テーブルはリモートデータベースにあり、oracle sql開発者やその他のツールで表示する権限がありません。その唯一の可能性のあるクエリを介して。 – Andrew

+0

'active'はテーブルのパーティションです。だから、あなたの質問は、このパーティション内のデータの条件は何ですか? –

答えて

1

パーティションがリストパーティションであるようです。または、おそらく範囲、ほぼ確実にハッシュです。 high_valueカラムのuser_tab_partitionsには、そのパーティションが構築されている値が表示されます。

SELECT * FROM [email protected]_dblink_name WHERE table_name = 'TRACK_TABLE'; 

そうでない場合は、あなたがもっと欲しい場合は、このdiscusssionを参照してください。Getting schema (DDL) of a table through DB link

+0

はそのリストパーティションです。しかし、それはまだ私の質問に答えることはありません。私はリストパーティションが何を意味するのか知りたいですか?そして、どの条件でtrack_tableのパーティションを作るための基準が何を意味するのでしょうか? – Andrew

+0

インターネットで検索するか、ドキュメントを調べることで、リストパーティションの意味を知ることができます。あなたのテーブルの基準は、まさに私が答えたものです。クエリの結果を見ると、テーブルがどのように分割されているかがわかります。 –

-1

はこれを試してみてください。私はそれが働いているのか分からない。

declare 
h  NUMBER;   
th  NUMBER;   
doc  CLOB;   
BEGIN 
h := DBMS_METADATA.OPEN(object_type => 'TABLE',network_link => 'dblink'); 
DBMS_METADATA.SET_FILTER(h,'SCHEMA','schema_name'); 
DBMS_METADATA.SET_FILTER(h,'NAME','table_name'); 
th := DBMS_METADATA.ADD_TRANSFORM(h,'DDL'); 
DBMS_METADATA.SET_TRANSFORM_PARAM(th,'SQLTERMINATOR',true); 
LOOP 
    doc := DBMS_METADATA.FETCH_CLOB(h); 
    EXIT WHEN doc IS NULL; 
    dbms_output.put_line(doc); 
    exit; 
END LOOP; 
DBMS_METADATA.CLOSE(h); 
end; 
+0

エラーが発生しましたPLS-00352:別のデータベース 'DBLINK'にアクセスできません PLS-00201:識別子 'DBMS_METADATA @ DBLINK'を宣言する必要があります – Andrew

+0

こんにちは、[here](https:// community。 oracle.com/thread/1982552?tstart=0)、plsがソースの回答を更新します。あなたのコードの場合は、私のコメントを無視してください。 –