2017-10-31 16 views
0

これは前に尋ねられたかもしれないが、自分のテーブル(oracle db)が列の1つとしてシーケンスを使用しているかどうかを確認する方法があるかどうかを知る必要があることは知っていますか?私はいくつかの挿入を行うために知る必要があるので、スキーマを書き込む(select * from v$versionによって報告されるように、完全な番号)テーブル内のシーケンス番号

+1

テーブル定義で、シーケンスを使用してデフォルト値があるかどうかを確認できます。あなたの定義に何も表示されていない場合は、DBにシーケンスを付加するものは何もありません。 – Abend

答えて

1

一つの方法は、型にはまらないが、あなたのfunctionsprocedurespackagesで使用される任意の順序があるかどうかをチェックするためにこれらのクエリを実行することです。

select * from user_source where 
     UPPER(TEXT) LIKE '%NEXTVAL%'; 

select * from all_source where 
     UPPER(TEXT) LIKE '%NEXTVAL%'; 

次に、特定の手順を実行して、どの列/テーブルがシーケンスによって読み込まれるかを確認します。 も参照してください

これは、JDBCまたは他の外部アプリケーションからseqeunceを使用している場合に役立ちません。

0

常には、常に、あなたのOracle DB バージョンを述べる照会しませんでした。 Oracleの12で

、あなたはそうのようなuser_tab_columnsを照会することができます

select column_name 
from user_tab_columns 
where table_name = 'EMP' and identity_column = 'YES' 

(あなたは、一度にすべてのテーブルのためにこれを行うWHERE句からtable_name = ...条件を削除し、代わりにtable_nameを追加したい場合SELECT節)これをしようとする

+0

こんにちは、私は12 cを使用しています。あなたの応答に感謝しますが、上記のクエリを実行しても結果は得られませんでした。私が決定できる他の方法はありますか? – Sara

+0

@Sara "結果なし"は、テーブルにID列がないことを意味します。あなたは結果を信じていないのですか?何故なの? – mathguy

+0

いいえ、それはそうではありません。一つのこと:「アイデンティティ列」を持っているということは、それがシーケンスとして1つの列を持つことを意味していますか?(私の元の問題文で述べたように) – Sara

関連する問題