[解決済み] Oracle DBの外部キーと参照するテーブルの一覧表
2022-04-27 03:23:35
質問
あるテーブルの外部キーと、それらが参照するテーブルおよびカラムのリストを返すクエリを探しています。 私は、次の方法で半分まで到達しています。
SELECT a.table_name,
a.column_name,
a.constraint_name,
c.owner
FROM ALL_CONS_COLUMNS A, ALL_CONSTRAINTS C
where A.CONSTRAINT_NAME = C.CONSTRAINT_NAME
and a.table_name=:TableName
and C.CONSTRAINT_TYPE = 'R'
しかし、このキーがどのテーブルと主キーを参照しているのかを知る必要があります。 どのようにそれを得るのでしょうか?
どのように解決するのですか?
参照される主キーは、カラムに記述されています。
r_owner
と
r_constraint_name
テーブルの
ALL_CONSTRAINTS
. これで欲しい情報が手に入ります。
SELECT a.table_name, a.column_name, a.constraint_name, c.owner,
-- referenced pk
c.r_owner, c_pk.table_name r_table_name, c_pk.constraint_name r_pk
FROM all_cons_columns a
JOIN all_constraints c ON a.owner = c.owner
AND a.constraint_name = c.constraint_name
JOIN all_constraints c_pk ON c.r_owner = c_pk.owner
AND c.r_constraint_name = c_pk.constraint_name
WHERE c.constraint_type = 'R'
AND a.table_name = :TableName
関連
-
Oracle Sqlplusコマンドログイン複数方法ケーススタディ
-
Oracle11gアンインストール完全版グラフィックチュートリアル
-
[解決済み】Oracle Databaseで「SET DEFINE OFF」を使用するタイミングと理由
-
C#からORACLEへの接続が乱れたコードの問題解決法
-
[解決済み] エラー発生 - ORA-01858: 数値が期待される場所に非数値の文字が見つかりました。
-
[解決済み] ORA-01465: BLOB を使用しているとき、Oracle の 16 進数が無効です。
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
-
[解決済み] [Solved] Oracle SQL Developerで、指定したテーブルを参照しているテーブルを見つけるにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
オラクルのブロック修正追跡機能の説明
-
Oracle12Cのデフォルトのユーザー名とシステムパスワードが正しくない場合の解決策
-
PLSQL14ダウンロードとインストールチュートリアル
-
オラクルユーザー作成プロセスの説明
-
オラクル・ラックのケーススタディ
-
Oracle TriggersとCursorsを高速に学ぶ
-
[解決済み] ミリ秒を含む日付文字列に対するOracle to_date関数の使用
-
[解決済み] ORA-29283: 無効なファイル操作 ORA-06512: "SYS.UTL_FILE", 行 536 で。
-
[解決済み] ORA-04063: パッケージ本体 "WB_PROD.PLOG" にエラーがあります。
-
[解決済み] pl sql %NOTFOUND