2017-03-02 95 views
1

SqlDeveloper(バージョンは4.1.5.21)を使用して、複数のテーブルをセミコロンで区切られたファイルにエクスポートします。SqlDeveloper SPOOL:空白の先頭行

現在、私は大丈夫です、スクリプト、各テーブルの

SET SQLFORMAT delimited 
spool ..\dir\table1.csv 
select * from table1; 
spool off; 

を使用しています。

問題は、結果のファイルに空白の1行目があることです。何とかそれを削除することは可能ですか?私はいくつかの調査を行いましたが、SqlPlusではSqlDeveloperに実装されていない機能のように見えます。

私もSqlPlusで同じことを達成しようとしましたが、SqlDeveloperによって生成された結果に近づきませんでした。

スプールを使用してその空白行を取り除くことができない場合は、SqlDeveloperを実行する必要がないように、結果のフラグを操作するために使用できるsqlの組み込み関数があります。ファイル?

+0

あなたが探している結果(出力)は何ですか? – BobC

+0

4.2.0.16.356に空白行が表示されません(上の行ではなく、ファイルの一番下に行があります)。それがバージョン固有の動作であるかどうかは確かではありません。あなたが示したものの前にスクリプト(またはセッション)の何か他のことをしていますか?他の 'set'コマンド? –

+1

OK、私は確かに4.1.15で複製することができるので、動作は4.2.0(まだ早期採用者)で変更されました(修正済みですか?)。私は4.1.15が同じように動作するようにする方法を見つけませんでした。あなたは 'set pagesize 0'でこれを回避することができましたが、ゼロはそのバージョンでは受け入れられませんでした。 (ちなみに、4.2.0では、スプールの動作の仕方も変わったように見えますが、別の@を使わずにコードを直接実行することはなくなりました(SQLステートメントをエコーし​​ます)。(http://stackoverflow.com/q/19033943/266304)それはいいです)。 –

答えて

0

誰もがこの質問時につまずく場合:

アレックスはコメントで指摘したように、これはのsqldeveloperのバージョン4.1.15(そしておそらくそれ以前のバージョン)のバグです。それを取り除くには、4.2.0にアップグレードしてください。

私のように、何らかの理由で以前のバージョンに慣れていた場合は、SqlDeveloperと一緒に出荷されているsqlclを使用して、上記の問題なしにスクリプトを実行できます。

私の.sqlスクリプトは次のようになります。

SET ECHO OFF 
SET FEEDBACK OFF 
SET sqlformat delimited ; " " 

spool ..\relative\path.csv 
select * from table1; 

SPOOL OFF; 
QUIT; 
関連する問題