• ベストアンサー

オラクル:ビューのCREATE文について

こんにちわ。 OEMやOBJECTBROWSERで標記のものが確認できますが、 これらはどのデータディクショナリを参照しているのでしょうか? とりあえず、ALL_VIEWSで列名は取得できるのですが、FROM句やWHERE句の部分がどのテーブルから引っ張っているのかが分からない。といったところです。 ご存知の方、どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

VIEWの元データを確認したいのであれば、USER_VIEWSの列:TEXTを参照してください。 select text from user_views where view_name=[知りたいView名(大文字ですよ)];

ssssssssss
質問者

補足

早速の回答ありがとうございます。 ご指摘通り、TEXT列にSELECT文が存在していました。 ただし、SQLPLUSで表示させた場合、全部表示されないようです。 これに対応するにはどうしたらよいでしょうか? 申し訳ありませんが、よろしくお願いします。

その他の回答 (2)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.3

こんにちわ。 > SQLPLUSで表示させた場合、全部表示されないようです。 TEXT 列がLONG 型で定義されているため、全て表示されないだけです。 「SET LONG 9999」 としてからSELECT 文を実行してみて下さい。

ssssssssss
質問者

お礼

完璧です!! ありがとうございます。 助かりました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

すみません。結果が芳しくないのでObjectBrowserを使用してください。 私の手元のはVer7.0.10.47です。 1.ObjectBrowserでユーザ名下にあるViewをクリック 2.View名が表示されるので対象(または全部)を選択 3.右クリックして、スクリプト出力をクリック 4.出力先パスを指定。 5.開始をクリック。勝手にView名がファイル名になります。 6.出力したTEXTファイルを開く。 この方法で確認してください。

ssssssssss
質問者

お礼

なるほど。 こんな方法で取得するやり方もあるのですね! ありがとうございました。

関連するQ&A

  • テーブル、インデックスのCREATE文について

    ObjectBrowserを使用すると標記のソースが参照できますが、これをデータディクショナリから拾おうとするとどのようなSQLでできるのでしょうか? マニュアル等いろいろ調べましたところ、各情報を項目として捕まえることはできそうなのですが、CREATE文として取得する方法は探し当てれませんでした。 どなたかご存知の方、よろしくお願いします。

  • Viewを作ると遅くなる?

    Viewを作成してそのViewに対してWhere句で条件を付けて検索する場合と、 Viewを作成せずに直接Where句で条件を付けて検索する場合と、どちらが パフォーマンスがよいでしょうか? (1)Viewを使わない例 SELECT 伝票番号,伝票日付,金額 FROM 伝票 WHERE 伝票番号=1 (2)Viewを使う例  あらかじめViewを作成しておく CREATE VIEW TEST_VIEW AS SELECT 伝票番号,伝票日付,金額 FROM 伝票 以下のSQL文を発行する SELECT * FROM TEST_VIEW WHERE 伝票番号=1 このような質問をした訳は、元となるテーブルの全件を対象とした Viewを作った場合、毎回テーブルフルスキャンを行ってViewを作成 したあとにWHERE句の絞り込みを行うのかどうかが気になったから です。

  • viewの性能

    あるテーブルがあって、Viewがそのままテーブルを参照してます。 そのViewをそのまま参照しているViewが階層的にあるとします。 テーブルA ← View1 ← View2 ← View3 [SQL的イメージは] ・creat table テーブルA (・・・) ・create view1 as select * from テーブルA ・create view2 as select * from view1 ・create view3 as select * from view2 質問したい事として、 View1 を参照するのとView3を参照するのは、View1を参照するのが 階層化が無い分、速いのでしょうか? それともそのまま参照している場合、あまり速さは変わらないのでしょうか?

  • SynonymとViewについて

    お世話になります。 自DBから他DBのテーブルを参照するのですが、 SynonymとViewのどちらで参照するか決めかねています。 Viewといっても列名や型(バイト数)等の変更はありません。こういう場合は何を根拠にどちらにするべきなのでしょうか? よろしくお願いします。

  • SQL文 この部分はなんていうのでしょう?

    SELECT T_テーブル1.フィールド1 FROM T_テーブル1 ORDER BY T_テーブル1.フィールド1; なら、 ”ORDER BY句” SELECT T_テーブル1.フィールド1 FROM T_テーブル1 WHERE (((T_テーブル1.フィールド1)="A")); なら ”WHERE句” と言いますが、 DELETE Table1.* FROM Table1; や UPDATE テーブル1 Set テーブル1.フィールド1 = "い" WHERE (((テーブル1.フィールド1)=”あ")); や DROP Table Table1; の deleteやupdateやdropの部分は何て言うのでしょうか? そのまま、SELECT句DELETE句などというのでしょうか?

  • オラクルのhint語について

    オラクルのview文に二つテーブルが存在します。 このようなhint語がどのように書いていますか。 例えば: view句  名前:vAB 「select A.a,B.b from A,B where *******;」 注; テーブルAのインデックス「name」, テーブルBのインデックス「age」。 有識者ご教えていただけませんか。 

  • Oracle delete文について

    お世話になります。 Oracle初心者です。 delete文の条件で他テーブルの列の値(列名は両方テーブルとも同じ) と同じ所の行を削除したいと思っているのですが、 コンパイルエラーになります。 基本的な書き方が悪いのでしょうか。 どなたかご親切な方、御教示頂きたく宜しくお願い致します。        記 delete from ( select 受注NO from T受注明細 where T受注明細.受注NO = D売上.受注NO)

  • ビューで引数を使いたい

    4つのテーブルのいずれかをアクセスしますが、 select文はひとつでwhereでテーブルを指定したいので、  例:select * from ビュー where table_no=1 とかで、table_noの値でアクセスするビューは 作れますか? ※この例の場合、select * from table1が実行したい。 4つのテーブルは全て同じ構造で、 データが違うのみです。

  • Oracleのビュー作成時に「指定した列名の個数が無効です」エラー

    初歩的な質問かと思いますが、宜しくお願い致します。 Oracle10gでViewを作成する際に、以下のようなSQLを発行しています。 SELECT 列名1 FROM テーブル名1 この際、スケール(小数点)ありの列名を指定すると 「指定した列名の個数が無効です」というエラーが表示されてしまうのですが、エラー原因がわかりません。 (スケールなしの列名は問題なし) お手数ですが、ご教示いただけませんでしょうか。

  • viewでfrom句にサブクエリが書けない

    こんにちは。MYSQLのVIEWの代替についてお教え下さい。 下記でinner joinについて教えて頂きました。 http://okwave.jp/qa/q7296711.html 環境はWin 7 MYQL5です。 t1テーブルのデータ ID,在庫 001,22 t2テーブルのデータ ID,出庫 001,17 001,3 SELECT A.z AS `在庫`,B.* FROM (SELECT SUM(stock) AS z FROM t1 WHERE id='001' GROUP BY id) A INNER JOIN t2 B ON A.id=B.id というコードで、それぞれのテーブルをグループ化してグループ化したもの同士をJOINしました。 このコードを元にVIEWを作り、そのVIEWを対象にクエリを作ろうと考えていました。 しかしながら、MYSQLのVIEWではFROM句でサブクエリは使えませんでした。 http://www.klab.jp/media/mysql/index4.html 上記のコードを書きなおして、なんとしてもVIEWで利用したいのですが、FROM句でサブクエリを使わずにVIEWを作成する方法がわかりません。 どのようにリライトすればよいか、ご助言お願い致します。

    • ベストアンサー
    • MySQL