- ベストアンサー
テーブルの存在チェックについて
oracle初心者です。 テーブルの存在をチェックする命令はあるのでしょうか? オンラインマニュアルやSQLポケットリファレンスなどを参考に探したのですが見つかりませんでした。 SELECT count(*) FROM テーブルA・・・などでステータスを判断(ZERO以外は未存在)し存在有無を確認するような方法しかないのでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データディクショナリの USER_TABLES を利用すると良いでしょう。これは表と同様に扱えます。 例えばこのような感じです select * from user_tables where table_name = 'TABLE_A'; TABLE_A が(自分のテーブルとして)あれば1件引っかかりますし、なければ結果0件になります。 データディクショナリには他にもいろいろありますので詳しくは参考 URL をご参照ください。
その他の回答 (1)
- MZ-80B
- ベストアンサー率56% (46/81)
回答No.2
SQL*Plus が利用できる環境であれば DESC コマンドが利用できます。 SQL> DESC xxxx xxxx の定義が表示されます。 テーブルが無い場合には存在しません。と表示されます。 xxxx はテーブルを主に指定するのですが、 DESC コマンドはテーブルだけではなくプロシージャやパッケージも指定できます。 そのときはプロシージャのパラメータなどの定義が出力されます。
質問者
お礼
回答ありがとうございます。 説明不足ですみません。 実際は、実行PG内で判断したかったので、「DESC」では、無理なようです。 今後は、わかりやすく質問するように気をつけます。 ありがとうございました。
お礼
THX1138様 回答ありがとうございます。 USER_TABLESを使用したところ、期待していた通りの結果を得ることが出来ました。 ありがとうございました。