Oracle 11gを使用しているSQL初心者です。
テーブルの列名を取得する方法についての質問です。
テーブルの列名を取得するときは以下のSQLで取れると思っています。
select column_name from user_tab_columns where table_name = 'テーブル名';
--実行結果--
COLUMN_NAME
------------------------------
NAME1
NAME2
しかし、テーブルにTIMESTAMP型が含まれていると
「レコードが選択されませんでした。」
と表示されます。
TIMESTAMP型が含まれるテーブルは上記のSQLでは取得できないのでしょうか。
TIMESTAMP型が含まれるテーブルの列名の取得方法をご存知の方がいらっしゃいましたら、
ご教示ください。よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
こんにちわ。
> TIMESTAMP型が含まれるテーブルは上記のSQLでは取得できないのでしょうか。
通常、そのような事はありません。
問題のテーブルにアクセスできるユーザからuser_tab_columns ビューを
参照している前提で、考えられる原因が3つあります。
1) 別スキーマにテーブルがある。
user_tab_columns ビューは、自スキーマに定義されているテーブルの
列情報を持ちます。
all_tab_columns ビューで情報が取得できるか確認して下さい。
※ all_tab_columns ビューのowner 列にテーブルの所有者名が
格納されています。
2) テーブルが大文字/小文字混在で作成されている。
テーブルを大文字/小文字混在でCreate table しても、大文字でテーブルが
作成されますが、テーブル名をダブルクォーテーションで囲むと大文字/小文字
混在で作成させる事ができます。
その場合、ディクショナリにもテーブル名は大文字/小文字混在で格納されて
います。
where upper(table_name) = upper('テーブル名') で確認してみて下さい。
3) Synonym 経由で別の表にアクセスしている。
Synonum 経由で別の表にアクセスしている場合も、user_tab_columns や
all_tab_columns ビューには列情報は格納されません。
select owner, object_type, object_name from all_objects
where object_name = '先に指定したテーブル名';
上のSQL で、どの所有者のどのようなオブジェクトにアクセスしているか
確認してみて下さい。
丁寧な回答ありがとうございます。
おかげで解決することができました。なんと仕様書上大文字小文字が混ざっていたのですが、実際には全て大文字でテーブル名が作られていたことが原因でした。
回答を試している内に気付きました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数が選択リストにありません
-
importについて
-
テーブルの存在チェックについて
-
データがある場合のカラムの削除
-
異なるサーバのDBデータ同士を...
-
PostgreSQLのカラムに"user"と...
-
NLS_LENGTH_SEMANTICS変更の影響
-
Oracleでテーブル構成を表示す...
-
テーブルのCreate文
-
既存DBのテーブル情報をCR...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
Accessでテーブルの値をテキス...
-
Accessでコードを入れると名前...
-
Accessでテーブル名やクエリ名...
-
VBAで複数の数式セルを最終行ま...
-
作番ってどういう意味でしょうか?
-
ACCESSに同時アクセス(編集)を...
-
エクセルグラフの凡例スペース
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの存在チェックについて
-
変数が選択リストにありません
-
異なるサーバのDBデータ同士を...
-
importについて
-
データがある場合のカラムの削除
-
既存DBのテーブル情報をCR...
-
Timestampの値を自動的に挿入す...
-
1ヶ月に土日は何日あるか
-
Object Browser相関タブの見方...
-
NLS_CHARSETの変更について
-
データベース内のテーブル名の取得
-
どれがPrimary Key、ForeignKey...
-
PostgreSQLのカラムに"user"と...
-
NLS_LENGTH_SEMANTICS変更の影響
-
AUDIT TABLE
-
OracleとSQLserver間のデータ連...
-
オラクル10gをMS ACCESSで開く...
-
TIMESTAMP型が含まれるテーブル...
-
オラクルの環境をコピーして全...
-
Oracleのトリガーについて
おすすめ情報