CREATE TABLE "FANTASISTA"."TBL1"
( "FIELD1" NOT NULL ENABL
CREATE文のファイル出力
ORACLE
下記のスクリプトを作成しSQL PLUSで実行
・テーブルのファイル出力
SET LONG 32000
SET PAGESIZE 15000
SET LINESIZE 1000
SET HEADING OFF
SET TRIMSPOOL ON
SPOOL C:\temp\出力ファイル名.sql
SELECT DBMS_METADATA.GET_DDL('TABLE',a.TABLE_NAME,a.OWNER) || ';' FROM
DBA_ALL_TABLES a WHERE a.OWNER = スキーマ名;
SPOOL OFF
・インデックスのファイル出力
SET LONG 32000
SET PAGESIZE 15000
SET LINESIZE 1000
SET HEADING OFF
SET TRIMSPOOL ON
SPOOL C:\temp\出力ファイル名.sql
SELECT DBMS_METADATA.GET_DDL('INDEX',a.INDEX_NAME,a.OWNER) || ';' FROM
DBA_INDEXES a WHERE a.OWNER = スキーマ名;
SPOOL OFF
・シーケンスのファイル出力
SET LONG 32000
SET PAGESIZE 15000
SET LINESIZE 1000
SET HEADING OFF
SET TRIMSPOOL ON
SPOOL C:\temp\出力ファイル名.sql
SELECT DBMS_METADATA.GET_DDL('SEQUENCE',a.SEQUENCE_NAME,a.SEQUENCE_OWNER) || ';' FROM
DBA_SEQUENCES a WHERE a.SEQUENCE_OWNER = スキーマ名;
SPOOL OFF
PL/SQL文のファイル出力
ORACLE
下記のスクリプトを作成しSQL PLUSで実行
・PL/SQLのファイル出力
SET DEFINE ON
SET VERIFY OFF
SET PAGESIZE 0
SET FEEDBACK OFF
SET TRIMSPOOL ON
SET HEADING OFF
COL TEXT FORMAT a4000
SET LINE 4000
SET ESCAPE ON
SPOOL C:\temp\出力ファイル名.sql
SELECT
CASE
WHEN UPPER(TEXT) LIKE 'PACKAG%' || UPPER(NAME) || '%' THEN 'CREATE OR REPLACE ' || TEXT
WHEN UPPER(TEXT) LIKE 'END%' || UPPER(NAME) || '%' THEN TEXT || CHR(13) || '/'
ELSE TEXT
END AS TEXT
FROM
DBA_SOURCE
WHERE
OWNER = 'スキーマ名'
NAME = 'PL/SQL名'
ORDER BY
OWNER,
NAME,
TYPE,
LINE
;
SPOOL OFF
SET PAGESIZE 24
SET FEEDBACK ON
SET HEADING ON
SET LINE 100
SET ESCAPE OFF
SGAの確認
ORACLE
SELECT * FROM v$sga;
コメントの確認
ORACLE
SELECT
c.COMMENTS テーブル論理名,
a.TABLE_NAME テーブル物理名,
a.COMMENTS カラム論理名,
a.COLUMN_NAME カラム物理名 FROM
USER_COL_COMMENTS a,
USER_TAB_COLUMNS b,
USER_TAB_COMMENTS a WHERE
a.TABLE_NAME = b.TABLE_NAME
a.TABLE_NAME = c.TABLE_NAME
a.TABLE_NAME = 'テーブル名'
a.COLUMN_NAME = b.COLUMN_NAME ORDER BY
a.TABLE_NAME,b.COLUMN_ID
初期化パラメータの確認
ORACLE
SELECT * FROM v$parameter2;
ソースの表示
ORACLE
SELECT text FROM all_source WHERE name = 'パッケージ名' AND OWNER = 'スキーマ名' ORDER BY LINE;
バージョン確認
ORACLE/SQL Server
[ORACLE]
SELECT * FROM v$version;
[SQL Server]
SELECT @@version
シーケンステーブルの確認
DB2
SELECT * FROM SYSCAT.SEQUENCES
現在のシーケンス番号の確認
DB2
SELECT * FROM SYSIBM.SYSSEQUENCES
※ただし一度NEXTVALしないと表示されない(NEXTVALを行うとシーケンス番号を次の番号に更新してしまう)
VALUES NEXTVAL FOR シーケンステーブル名
シノニムの一覧表示
ORACLE
ユーザ管理のシノニム
SELECT * FROM USER_SYNONYMS
パブリックシノニムの一覧表示
SELECT * FROM DBA_SYNONYMS WHERE OWNER = 'PUBLIC' AND NOT TABLE_OWNER IN ('SYS', 'SYSMAN', 'SYSTEM','WMSYS', 'EXFSYS', 'ORDSYS','MDSYS', 'XDB');
使用しているテーブルの件数表示
ORACLE
使用しているテーブルの件数を出力するSELECT文
SELECT
table_name, TO_NUMBER ( EXTRACTVALUE (
xmltype( dbms_xmlgen.getxml('SELECTCOUNT(*) AS C FROM '||table_name)
),
'/ROWSET/ROW/C'
)
) AScount FROM user_tables
Enterprise Managerと同様の表領域確認
ORACLE
Enterprise Managerと同様の表領域確認
SELECT
d.tablespace_name AS "表領域名",
nowspace AS "サイズ(MB)", ROUND(nowspace-freespace) AS "使用量(MB)", ROUND((1-freespace/nowspace)*100) AS "使用率(%)",
freespace AS "空容量(MB)" FROM
(SELECT tablespace_name,ROUND(SUM(bytes)/(1024*1024)) AS nowspace FROM dba_data_files GROUP BY tablespace_name) d,
(SELECT tablespace_name,ROUND(SUM(bytes)/(1024*1024)) AS freespace FROM dba_free_space GROUP BY tablespace_name) f WHERE
d.tablespace_name = f.tablespace_name