JavaScriptが無効になっています。
この状態では一部の情報が表示されず、すべての機能を利用することができません。
スキーマ・オブジェクト仕様の表示
DESCRIBE は テーブル定義などの スキーマオブジェクト の仕様の表示を行なうためのコマンド
DESCRIBE コマンド
DESCRIBE コマンドの構文
DESCRIBE {[schema.]object_name[@connect_string]}
短縮形
DESC {[schema.]object_name[@connect_string]}
object_name の種類によって表示項目に若干の違いはあるものの出力される内容はかなり限定されている。
詳細な情報を取得するには データ・ディクショナリ を検索する必要がある。
テーブル定義の仕様をみる
DUAL 表の仕様 ( SYS.DUAL )
SQL> describe sys.dual
名前 NULL? 型
----------------------------------------- -------- ----------------------------
DUMMY VARCHAR2(1)
テーブル定義の表示はカラム名、NULL制約 の有無、データ型 が表示される。
プリマリキーや NULL 制約以外の情報については DESC で取得できない。
シノニムの定義をみる
パブリックシノニム である DUAL の仕様
SQL> describe dual
名前 NULL? 型
----------------------------------------- -------- ----------------------------
DUMMY VARCHAR2(1)
このようにシノニムの定義を DESCRIBE しても SYNONYM の参照先などが表示されるのではなく、実体の定義が表示される。
ビューの仕様をみる
user_users ディクショナリビューの仕様(ビューとは )
SQL> describe user_users
名前 NULL? 型
----------------------------------------- -------- ----------------------------
USERNAME NOT NULL VARCHAR2(30)
USER_ID NOT NULL NUMBER
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
EXTERNAL_NAME VARCHAR2(4000)
このようにビューの場合にもビューに使用されている SQL 文が表示されるのではなくビューのカラム情報が表示される。
ストアドプロシージャの仕様をみる
ストアドされているプログラム dbms_output パッケージの定義
SQL> describe dbms_output
PROCEDURE DISABLE
PROCEDURE ENABLE
引数名 タイプ In/Out Default?
------------------------------ ----------------------- ------ --------
BUFFER_SIZE NUMBER(38) IN DEFAULT
PROCEDURE GET_LINE
引数名 タイプ In/Out Default?
------------------------------ ----------------------- ------ --------
LINE VARCHAR2 OUT
STATUS NUMBER(38) OUT
PROCEDURE GET_LINES
引数名 タイプ In/Out Default?
------------------------------ ----------------------- ------ --------
LINES TABLE OF VARCHAR2(32767) OUT
NUMLINES NUMBER(38) IN/OUT
PROCEDURE GET_LINES
引数名 タイプ In/Out Default?
------------------------------ ----------------------- ------ --------
LINES DBMSOUTPUT_LINESARRAY OUT
NUMLINES NUMBER(38) IN/OUT
PROCEDURE NEW_LINE
PROCEDURE PUT
引数名 タイプ In/Out Default?
------------------------------ ----------------------- ------ --------
A VARCHAR2 IN
PROCEDURE PUT_LINE
引数名 タイプ In/Out Default?
------------------------------ ----------------------- ------ --------
A VARCHAR2 IN
このように PUBLIC に公開されているサブプログラム名と引数の名前と型、IO、デフォルト値の有無が表示される。
ちなみに標準関数は STANDARD パッケージ に格納されているので DESCRIBE to_char などとやってもエラーになる。
SQL> describe to_char
ERROR:
ORA-04043: オブジェクトto_char は存在しません。
SQL> desc sys.standard
........ 大量に標準関数の仕様が表示される
....
..
他のスキーマに対しても同程度の情報表示なので DESCRIBE コマンドといえば、テーブル定義のカラム長を確認するという目的が大半を占める。