• ベストアンサー

テーブルスペースの中身を確認したい!

以前に質問して、テーブルスペースを指定してインデクスを作成する事に成功しました。 また、以下の文を用いて、インデクスが作成されている事を確認できました。 select owner,object_name,object_type as owner from all_objects where owner = 'username' ただ、インデクスが作成できた事は解ったのですが、それが本当に指定したテーブルスペースに作られているか確認する方法が見つからないのです。 オーナー名を表示するような感覚なのかと思って調べているのですが、糸口が見えません。 Oracle9iのSQLリファレンスを確認しているのですが、テーブルスペースに関してはCreate文しか見つかりません。探し方が悪いのでしょうか・・・。もしかしたら、違う名前で検索するべきなのかも知れません。 どなたか、お分かりになりましたら教えて頂けないでしょうか。

  • Oracle
  • 回答数3
  • ありがとう数5

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

  • ベストアンサー
  • FudaKeji
  • ベストアンサー率73% (58/79)
回答No.1

username ユーザーでログインし、 user_idnexesビューを問い合わせてみてください。 TABLESPACE_NAME列で確認することができます。 select INDEX_NAME, TABLE_NAME, TABLESPACE_NAME from user_indexes;

tennyasu
質問者

お礼

お礼が遅れてすみません。 本当に助かりました。 また、データディクショナリの確認方法もどうにか理解でき、とても勉強になりました。 これでまた自分で調べられる範囲が広がりました。本当にありがとうございます。

その他の回答 (2)

  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.3

皆さんが回答しているようにデータディクショナリを参照するのが 基本中の基本で、まずそこから勉強するのがいいと思いますが、 以下のようなGUIを使う手もあります。 1) Enterprise Manager(これはエンタープライズエディションのみかな?) 2) SQL Developer (Oracleのサイトから無償ダウンロード) 3) Common SQL Environment (Officeがあれば、仕様書も作成できます) 確認方法を複数知っていることは損はないと思います。

tennyasu
質問者

お礼

CSEは一度使った事があるのですが、データディクショナリの参照はやった事がありませんでした。経験を生かしてない・・・。 勉強のため、当分はコマンドライン上の操作をがんばって覚えようかと思います。ありがとうございました。

回答No.2

確認方法はFudaKejiさんが回答していますので補足を。 データベースの情報(今回のようにオブジェクトがどの表領域にあるかなど)は データディクショナリビューを使って確認します。 データディクショナリビューに関しては「リファレンス」 (「データベースリファレンス」)のマニュアルを参照してみてください。

tennyasu
質問者

お礼

データディクショナリの確認方法を学んでみました。 もっと早く知っておくべきでした・・・。 お恥ずかしい限りです。 おかげで自分で調べられる範囲が広がりました。本当にありがとうございます。

関連するQ&A

  • Oracleでテーブルを作成する際に、インデクスの作成先を指定したい。

    以下のようにテーブルを作成しようとしてます。 CREATE TABLE TEST_USER.M_USER ( ID char(4), NAME varchar2(40) NOT NULL), CONSTRAINT PK_USER PRIMARY KEY(ID) ); さて、プライマリキーを定義しているので、インデクスが作成されるはずです。 この作成先のテーブルスペースを指定したいのですが、方法が解りません。 CREATE TABLEの紹介をしているサイトにものっていなくて、途方にくれています・・・。 CONSTRAINT句を使えばいいのでしょうか?

  • オラクルのテーブルについて

    質問があります。 SQL文で指定したテーブル(test_tbl)のCREATEされた 日時とかわかるようなものはないでしょうか? たとえばテーブル (table_a, table_b, teble_c:全て同じ構成だが格納データが異なる)が あって一番最後に作成されたテーブルに アクセスしたい場合なんですが どのようなSQL文になるでしょうか? またそんな事はSQLではかけないような場合、 どのようにすればテーブルのクリエート日付を取得 することができるでしょうか? 宜しくお願いいたします。

  • Oracleのテーブル作成スクリプトを作成したい

    Oracle8i のDBA Studioで数十の表を作成したのですが、ここからテーブルの作成スクリプトを出そうとして困りました。いわゆる Create Table文なのですが、これを自動で簡単に作る方法はないでしょうか?SQL-ServerのEnterprise Managerでは、SQLスクリプトの作成があって、Create文を簡単に生成できるのですが、これと同じような感覚で、既に作成してあるテーブルのCreate文を出力する方法はないでしょうか?Oracleには、ほとんど慣れていないので、方法があると思うのですが、探し方が悪いらしく途方にくれています。どなたかよい方法を御存じないでしょうか。

  • テーブルを作ろうとしたら。

    下記のようなエラー文が表示されます。 NOTICE: CREATE TABLE will create implicit sequence 'テーブル名とフィールド名をくっつけたような名前' fo r SERIAL column 'テーブル名.フィールド名' NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'テーブル名_pke y' for table 'テーブル名' このデーターベースには他にもテーブルがありますが、 名前が主キーで名前が同じものがあるからエラーがでると思い、名前を変更して実行しましたが、同じような エラーがでました。 テーブル名とフィールド名をくっつけたような名前はもともとなかったものなのですが、実行後にデータベースに作成されました。 どなたかわかる方がいたら、ご教授お願いいたします。

  • テーブルのCreate文

    お世話になります。 現在、52テーブルあるDBがあり、別のDBに同じテーブルを作成するため、 それらのテーブルのCreate文を作らなくてはなりません。 一つ一つ属性を調べて作成するのではなく、一度に作る方法がありましたら、教えて下さい。 時間がないため、「直ぐに回答ほしいです」にチェックを 入れさせていただきました。 よろしくお願い致します。

  • ACCESS テーブルの有無確認方法

    分かる人がいましたらお願いします。 フォームのボタンを押すと下記の処理を流すようにしたいと思っています。 CurrentDb.Execute "Delete * From WT_g", dbFailOnError ここで指定しているテーブル「WT_g」は他処理の過程でcreateしたテーブルです。 上記処理を流す場合にこのテーブルが生成されていない条件の時があります。 そのためテーブルの存在を確認してから Delete~を流したいのですがどうチェックしていいのか分かりません。 どなたか教えてください

  • 既にテーブルが存在する場合のインポート

    インポート対象のテーブルが既に存在する場合、次のエラーが発生します。 IMP-00015: オブジェクトがすでに存在するため次の文は失敗しました: "CREATE TABLE ... SQL Loaderではデータにスペースや改行が含まれているとdatの作成がめんどうですし、dmpファイルでcreate文を削除するようなこともできればしたくありません。 データを追記したいのでテーブルを削除せずにインポートしたいのですが、どうすればよいでしょうか?

  • AUDIT TABLE

    AUDIT TABLEは特定のテーブルに対する監査ではなく、全部のテーブルに対する特定の処理(DDL)を監査するものだという記述を見ました。 しかし、別のところで AUDIT TABLE ON <テーブル名> というSQL文の例を見ました。 これだと特定のテーブルに対する監査になると思うのですが、このSQLはそういう解釈で正しいのでしょうか? また、特定のテーブルに対するすべての操作の監査をするには AUDIT SELECT,INSERT,UPDATE,DELETE,LOCK ON <Schema>.<Object> BY ACCESS; だけではDROPやCREATEが監査できないので不十分でAUDIT TABLEと組み合わせないと無理ということになるのでしょうか? 出展が明記できてなくて申し訳ありません。個人的なblog等ではないので執筆者に問い合わせるなどはできないようです。

  • テーブルの再作成におけるリコンパイル

    あるテーブルを再作成(Drop→Create)すると、 そのテーブルを参照しているビュー等をリコンパイルしないといけないですよね。 参照しているビューをあらかじめ分かっている場合はいいのですが、 分かっていない場合、オブジェクトブラウザの”状態”で、エラーがないか 確認しています。 質問は    PL*SQLで同じ事(エラーがあるか確認)をする事は可能でしょうか。    出来る場合、リコンパイルも行えるのでしょうか。    出来ない場合、他の方法で確認する事は出来ないでしょうか。 環境は    Oracle8i    Windows2000  です。 よろしくお願いします。

  • CREATE TEMPORARY TABLEを複数回使用できない?

    phpとMySql(4.0.26)でプログラムを作成しているのですが、 CREATE TEMPORARY TABLEでテンポラリーテーブルを3つ作成して、 データの抽出をしようとしています。 phpMyAdminでは動くSQLが、PHP内に書くと動かなくても困っています。 原因を特定するためにSQLを少しずつ削除して確認していたところ、CREATE TEMPORARY TABLEが一つの場合はエラーが出ませんが、違う名前で別のテーブルから生成するもう一つのCREATE TEMPORARY TABLEを書くとエラーが起きてしまいます。 ちなみに、そのSQLを同じサーバに動作させているphpMyAdminのSQL画面にコピペすると、正常に動作します。 何が悪いのか全く検討が付きません。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL