oracle

sqlplus上でコマンド履歴を使いたい場合(HP-UX限定)
ied sqlplus / as sysdba

「ESC」「k」で前の履歴呼び出し

■制約の確認方法
select constraint_name,constraint_type from user_constraints where table_name = 'EMP';
user_constraints.constraint_type(制約タイプ) は次のようになっている。
P : 主キー
U : 一意キー
R : 外部キー
C : CHECK、NOT NULL

■DDLを取得する
set long 2000
set longchunksize 2000
set heading off
set trimspool on
set feedback off
set linesize 3000
set pagesize 0
set trim on
execute dbms_metadata.set_transform_param(DBMS_METADATA.SESSION_TRANSFORM, 'SQLTERMINATOR', true);
execute dbms_metadata.set_transform_param(DBMS_METADATA.SESSION_TRANSFORM, 'STORAGE', false );
execute dbms_metadata.set_transform_param(DBMS_METADATA.SESSION_TRANSFORM, 'SEGMENT_ATTRIBUTES', false );
execute dbms_metadata.set_transform_param(DBMS_METADATA.SESSION_TRANSFORM, 'CONSTRAINTS_AS_ALTER', true );
spool /tmp/foo.sql
-- table
SELECT dbms_metadata.get_ddl('TABLE',u.table_name)
 FROM user_all_tables u
WHERE u.nested='NO'
  AND u.iot_type is null or u.iot_type='IOT';
-- index
SELECT dbms_metadata.get_ddl('INDEX',u.index_name) FROM user_indexes u;
-- materialized_view
SELECT dbms_metadata.get_ddl('MATERIALIZED_VIEW',u.mview_name) FROM user_mviews u;
-- materialized_view_log
SELECT dbms_metadata.get_ddl('MATERIALIZED_VIEW_LOG',u.LOG_TABLE) FROM user_mview_logs u;
-- synonym
SELECT dbms_metadata.get_ddl('SYNONYM',u.SYNONYM_NAME) FROM user_synonyms u;
-- view
SELECT dbms_metadata.get_ddl('VIEW',u.VIEW_NAME) FROM user_views u;
-- sequence
SELECT dbms_metadata.get_ddl('SEQUENCE',u.SEQUENCE_NAME) FROM user_sequences u;
spool off

設定できるオブジェクト種類
FUNCTION (ストアド・ファンクション)
INDEX (索引)
INDEXTYPE (索引タイプ)
OBJECT_GRANT (オブジェクト権限付与)
OPERATOR (演算子)
OUTLINE (ストアド・アウトライン)
PACKAGE (ストアド・パッケージ)
PROCEDURE (ストアド・プロシージャ)
SYNONYM (シノニム)
SYSTEM_GRANT (シノニム権限付与)
TABLE (表)
TRIGGER (トリガー)
TYPE (ユーザ定義型)
VIEW (ビュー)
ASSOCIATION (関連統計情報)
AUDIT (SQL文の監査)
AUDIT_OBJ (スキーマ・オブジェクトの監査)
CLUSTER (クラスタ)
COMMENT (コメント)
CONSTRAINT (制約)
CONTEXT (アプリケーション・コンテキスト)
DB_LINK (データベース・リンク)
DEFAULT_ROLE (デフォルト・ロール)
DIMENSION (ディメンション)
DIRECTORY (ディレクトリ)
JAVA_SOURCE (Javaソース)
LIBRARY (外部プロシージャ・ライブラリ)
MATERIALIZED_VIEW (マテリアライズド・ビュー)
MATERIALIZED_VIEW_LOG (マテリアライズド・ビュー・ログ)
PACKAGE_SPEC (パッケージ仕様部)
PACKAGE_BODY (パッケージ本体部)
PROFILE (プロファイル)
PROXY (プロキシ認証)
REF_CONSTRAINT (参照制約)
ROLE (ロール)
ROLE_GRANT (ロール権限付与)
ROLLBACK_SEGMENT (ロールバック・セグメント)
SEQUENCE (順序)
TABLESPACE (表領域)
TABLESPACE_QUOTA (表領域割り当て制限)
TRUSTED_DB_LINK (信頼されているリンク)
TYPE_SPEC (タイプ指定)

■外部ファイルのSQLをSQLPLUSで実行する
sqlplus -s user/passwd @hogehoge.sql > hogehoge.log
  • sはサイレントモード。

■指定したテーブルに貼られているインデックスを確認する
SELECT * FROM user_ind_columns where table_name = UPPER('テーブル名') order by index_name, column_position ASC;

■テーブル定義確認
describe emp

■ユーザ一覧
select username from user_users;

■テーブル一覧
select table_name from user_tables;

■インデックス一覧
select index_name from user_indexes;

■シーケンス一覧
select sequence_name from user_sequences;

■制約一覧
select table_name,constraint_name from user_constraints;

■シノニム一覧
SELECT * FROM USER_SYNONYMS;

  • 全ユーザ版(特権ユーザ用)
■ユーザ一覧
select username from all_users;

■テーブル一覧
select table_name from all_tables;

■インデックス一覧
select index_name from all_indexes;

■シーケンス一覧
select sequence_name from all_sequences;

■制約一覧
select table_name,constraint_name from all_constraints;

2014/11/26
最終更新:2014年12月03日 14:23