2016-03-23 4 views
0

次のスクリプトを実行すると、出力ファイルのステートメントの最後にセミコロンがありません。どのようにセミコロンを印刷することもできますか?この場合、AUTO後にセミコロンがあるべきであるとRESIZE 146800640kshスクリプトを使用してDDLを抽出した後にセミコロンが見つからない

sqlplus -s sys/${sysPwd}@${srcSID} as sysdba<<-EOF>createTS.sql 
SET SERVEROUTPUT ON 
SET HEADING OFF 
SET FEEDBACK OFF 
SET LONG 9999 
SET LINESIZE 999 
SET LONGCHUNKSIZE 350 
SET PAGESIZE 10000 
SELECT DBMS_METADATA.GET_DDL('TABLESPACE','$srcTablespace') FROM DUAL; 
quit; 
EOF 

猫結果のファイルの後に:createTS.sql

CREATE BIGFILE TABLESPACE "TSName" DATAFILE 
'/hostname/db/SID/oradata1/tsname.dbf' SIZE 5242880 
AUTOEXTEND ON NEXT 5242880 MAXSIZE 32767M 
LOGGING ONLINE PERMANENT BLOCKSIZE 8192 
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO 
ALTER DATABASE DATAFILE 
'/hostname/db/SID/oradata1/tsname.dbf' RESIZE 146800640 

答えて

1

あなたはtrueにデフォルト値false、からSQLTERMINATOR settingを変更する必要がありますあなたは、クエリの前に無名PL/SQLブロックを行うことができます。

BEGIN 
    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 
    'SQLTERMINATOR', true); 
END; 
/
SELECT DBMS_METADATA.GET_DDL('TABLESPACE','$srcTablespace') FROM DUAL; 

それともexec SQLを使用することができます* P lusの短縮形ですが、全体の呼び出しは一線でなければなりません。

set_transform_param手順の詳細については、the dbms_metadata documentationを参照してください。

+0

ありがとうございました – user6027133

関連する問題