Oracleのストアドの内容をバッチファイルでsqlplusで出力する方法です。
まずSQLファイルを作成します。
CドライブにCreate.sqlでファイルを作成したとします。
ストアドの出力先はCドライブのOutput.sqlとしています。
set echo off
set heading off
set termout off
set pause off
set pagesize 0
set linesize 1000
set trimspool on
set feedback off
spool C:\Output.sql
SELECT TEXT
FROM ALL_SOURCE
WHERE NAME = 'ストアド名'
ORDER BY TYPE, LINE;
spool off;
quit
次にバッチファイルを作成します。
CドライブにCreate.batでファイルを作成したとします。
sqlplusを使用して先ほど作成したsqlファイルを実行します。
sqlplus Oracleユーザー名/パスワード@データベース名 @C:\Create.sql
バッチを実行すると、ストアドの内容が「そのまま」出力されています。
ストアドの内容をCreate文付きで出力するのならコチラ。
set pages 0
set lines 200
set long 65535
set longc 65535
set trimspool on
spool 出力先ファイルパス
SELECT
DBMS_METADATA.GET_DDL(OBJ.OBJECT_TYPE, OBJ.OBJECT_NAME, OBJ.OWNER) AS SCRIPT
FROM DBA_OBJECTS OBJ
WHERE
OBJ.OWNER ='ユーザー名'
AND OBJ.OBJECT_TYPE ='PACKAGE'
AND OBJ.OBJECT_NAME ='ストアド名';
spool off;
quit
0 件のコメント:
コメントを投稿