テーブル、Viewへのコメント追加
viewに対してもなぜかcomment on tableで作成できます。comment on viewにするとエラーです。(ORA-32594: COMMENTコマンドのオブジェクト・カテゴリが無効です)その割には、マテリアライズドビューに対するコメントはcomment ON MATERIALIZED VIEWが用意されています。
テーブル、VIEWへのコメント追加
comment on table OY_REGION is '地域マスタ' ;
テーブル、VIEWのコメント確認
テーブルとVIEWへのコメント確認はDBA_TAB_COMMENTSで行います。
select t.OWNER,t.TABLE_NAME,t.TABLE_TYPE,t.COMMENTS from DBA_TAB_COMMENTS t where t.OWNER='DABADA' and t.TABLE_NAME ='OY_REGION' ;
実行例
-- テーブルへのコメント追加
--
SQL> comment on table OY_REGION is '地域マスタ'
2 ;
コメントが作成されました。
-- テーブルコメントの確認
--
SQL> COLUMN TABLE_TYPE FORMAT A8
SQL> select t.OWNER,t.TABLE_NAME,t.TABLE_TYPE,t.COMMENTS
2 from DBA_TAB_COMMENTS t where t.OWNER='DABADA' and t.TABLE_NAME ='OY_REGION'
3 ;
OWNER TABLE_NAME TABLE_TY COMMENTS
---------- -------------------- -------- --------------------
DABADA OY_REGION TABLE 地域マスタ
SQL>
マテリアライズドビューへのコメント追加
マテビューは通常のテーブルやVIEWと異なり、作成したタイミングでコメントが入っています。
マテビューへのコメント追加
COMMENT on MATERIALIZED VIEW DABADA.PREFECTURE_MMV_T is '都道府県MMV' ;
マテビューのコメント確認
マテビューへのコメント確認はDBA_MVIEW_COMMENTSで行います。
select OWNER,MVIEW_NAME,COMMENTS from DBA_MVIEW_COMMENTS where OWNER = 'DABADA' and MVIEW_NAME = 'PREFECTURE_MMV_T' ;
実行例
-- 変更前に確認すると既にデフォルトで入っています。
--
SQL> select OWNER,MVIEW_NAME,COMMENTS from DBA_MVIEW_COMMENTS
2 where OWNER = 'DABADA' and MVIEW_NAME = 'PREFECTURE_MMV_T'
3 ;
OWNER MVIEW_NAME COMMENTS
---------- ------------------------ ------------------------------------------------------------
DABADA PREFECTURE_MMV_T snapshot table for snapshot DABADA.PREFECTURE_MMV_T
-- 適切なコメントを入れます
--
SQL> COMMENT on MATERIALIZED VIEW DABADA.PREFECTURE_MMV_T is '都道府県MMV'
2 ;
コメントが作成されました。
-- 確認します
--
SQL> select OWNER,MVIEW_NAME,COMMENTS from DBA_MVIEW_COMMENTS
2 where OWNER = 'DABADA' and MVIEW_NAME = 'PREFECTURE_MMV_T'
3 ;
OWNER MVIEW_NAME COMMENTS
---------- ------------------------ ------------------------------------------------------------
DABADA PREFECTURE_MMV_T 都道府県MMV
SQL>
カラムのコメント確認
テーブル、VIEW、マテビュー何れのカラムもDBA_COL_COMMENTSにて確認できます
select OWNER,TABLE_NAME,COLUMN_NAME,COMMENTS from DBA_COL_COMMENTS where OWNER='DABADA' and TABLE_NAME='PREFECTURE_MMV_T' ;
カラムへのコメント追加
comment on column product_mst.category is 'カテゴリー' ;
カラムへのコメント確認はDBA_COL_COMMENTSで行います。
コメントの削除
違和感のある仕様なのですが、テーブル名、カラム名何れも「空文字」でクリアする事になります。ちなみにNULLとすると(ORA-01780: 文字列リテラルが必要です)エラーになります。
comment on column PREFECTURE_MMV_T.REGION_NAME is '' ;
-- コメント確認
-- テーブル、VIEW、マテビュー共通
-- カラムはマテビューと異なりデフォルトは空っぽです。
--
SQL> select OWNER,TABLE_NAME,COLUMN_NAME,COMMENTS
2 from DBA_COL_COMMENTS where OWNER='DABADA' and TABLE_NAME='PREFECTURE_MMV_T'
3 ;
OWNER TABLE_NAME COLUMN_NAME COMMENTS
---------- -------------------- -------------------- --------------------
DABADA PREFECTURE_MMV_T PREFID
DABADA PREFECTURE_MMV_T NAME
DABADA PREFECTURE_MMV_T NAME_R
DABADA PREFECTURE_MMV_T REGION_NAME
-- コメント追加
--
SQL> comment on column PREFECTURE_MMV_T.PREFID is '都道府県ID'
2 ;
コメントが作成されました。
SQL> comment on column PREFECTURE_MMV_T.NAME is '都道府県名'
2 ;
コメントが作成されました。
SQL> comment on column PREFECTURE_MMV_T.NAME_R is '都道府県英字'
2 ;
コメントが作成されました。
SQL> comment on column PREFECTURE_MMV_T.REGION_NAME is '地域'
2 ;
コメントが作成されました。
-- 再度カラムコメント確認
--
SQL> select OWNER,TABLE_NAME,COLUMN_NAME,COMMENTS
2 from DBA_COL_COMMENTS where OWNER='DABADA' and TABLE_NAME='PREFECTURE_MMV_T'
3 ;
OWNER TABLE_NAME COLUMN_NAME COMMENTS
---------- -------------------- -------------------- --------------------
DABADA PREFECTURE_MMV_T PREFID 都道府県ID
DABADA PREFECTURE_MMV_T NAME 都道府県名
DABADA PREFECTURE_MMV_T NAME_R 都道府県英字
DABADA PREFECTURE_MMV_T REGION_NAME 地域
SQL> comment on column PREFECTURE_MMV_T.REGION_NAME is ''
2 ;
コメントが作成されました。
-- 試しにREGION_NAMEカラムのコメントを消してみます
--
SQL> select OWNER,TABLE_NAME,COLUMN_NAME,COMMENTS
2 from DBA_COL_COMMENTS where OWNER='DABADA' and TABLE_NAME='PREFECTURE_MMV_T'
3 ;
OWNER TABLE_NAME COLUMN_NAME COMMENTS
---------- -------------------- -------------------- --------------------
DABADA PREFECTURE_MMV_T PREFID 都道府県ID
DABADA PREFECTURE_MMV_T NAME 都道府県名
DABADA PREFECTURE_MMV_T NAME_R 都道府県英字
DABADA PREFECTURE_MMV_T REGION_NAME
SQL>
SQL*Plus用
set lin 300 COLUMN OWNER FORMAT A10 COLUMN MVIEW_NAME FORMAT A24 COLUMN COMMENTS FORMAT A60 COLUMN TABLE_NAME FORMAT A20 COLUMN COLUMN_NAME FORMAT A20 COLUMN COMMENTS FORMAT A20