- ベストアンサー
オラクル:ビューのCREATE文について
こんにちわ。 OEMやOBJECTBROWSERで標記のものが確認できますが、 これらはどのデータディクショナリを参照しているのでしょうか? とりあえず、ALL_VIEWSで列名は取得できるのですが、FROM句やWHERE句の部分がどのテーブルから引っ張っているのかが分からない。といったところです。 ご存知の方、どうぞよろしくお願いします。
- ssssssssss
- お礼率86% (56/65)
- その他(データベース)
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VIEWの元データを確認したいのであれば、USER_VIEWSの列:TEXTを参照してください。 select text from user_views where view_name=[知りたいView名(大文字ですよ)];
その他の回答 (2)
- muyoshid
- ベストアンサー率72% (230/318)
こんにちわ。 > SQLPLUSで表示させた場合、全部表示されないようです。 TEXT 列がLONG 型で定義されているため、全て表示されないだけです。 「SET LONG 9999」 としてからSELECT 文を実行してみて下さい。
お礼
完璧です!! ありがとうございます。 助かりました。
- bin-chan
- ベストアンサー率33% (1403/4213)
すみません。結果が芳しくないのでObjectBrowserを使用してください。 私の手元のはVer7.0.10.47です。 1.ObjectBrowserでユーザ名下にあるViewをクリック 2.View名が表示されるので対象(または全部)を選択 3.右クリックして、スクリプト出力をクリック 4.出力先パスを指定。 5.開始をクリック。勝手にView名がファイル名になります。 6.出力したTEXTファイルを開く。 この方法で確認してください。
お礼
なるほど。 こんな方法で取得するやり方もあるのですね! ありがとうございました。
関連する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句の絞り込みを行うのかどうかが気になったから です。
- 締切済み
- SQL Server
- 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を参照するのが 階層化が無い分、速いのでしょうか? それともそのまま参照している場合、あまり速さは変わらないのでしょうか?
- ベストアンサー
- Oracle
- SynonymとViewについて
お世話になります。 自DBから他DBのテーブルを参照するのですが、 SynonymとViewのどちらで参照するか決めかねています。 Viewといっても列名や型(バイト数)等の変更はありません。こういう場合は何を根拠にどちらにするべきなのでしょうか? よろしくお願いします。
- ベストアンサー
- Oracle
- 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)
- ベストアンサー
- Oracle
- ビューで引数を使いたい
4つのテーブルのいずれかをアクセスしますが、 select文はひとつでwhereでテーブルを指定したいので、 例:select * from ビュー where table_no=1 とかで、table_noの値でアクセスするビューは 作れますか? ※この例の場合、select * from table1が実行したい。 4つのテーブルは全て同じ構造で、 データが違うのみです。
- ベストアンサー
- SQL Server
- Oracleのビュー作成時に「指定した列名の個数が無効です」エラー
初歩的な質問かと思いますが、宜しくお願い致します。 Oracle10gでViewを作成する際に、以下のようなSQLを発行しています。 SELECT 列名1 FROM テーブル名1 この際、スケール(小数点)ありの列名を指定すると 「指定した列名の個数が無効です」というエラーが表示されてしまうのですが、エラー原因がわかりません。 (スケールなしの列名は問題なし) お手数ですが、ご教示いただけませんでしょうか。
- ベストアンサー
- Oracle
- 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
補足
早速の回答ありがとうございます。 ご指摘通り、TEXT列にSELECT文が存在していました。 ただし、SQLPLUSで表示させた場合、全部表示されないようです。 これに対応するにはどうしたらよいでしょうか? 申し訳ありませんが、よろしくお願いします。