1

フォルダーにスクリプト ファイルがあります。SSIS を使用してこのスクリプトを実行し、CSV を生成するため、SSMS で開かずに TSQL を使用してこのスクリプトを実行したいと考えています。

OSQL を使用してプロセス実行タスクを使用してこれを達成しましたが、探している正確な結果が得られません。csvにスペースを生成しています。CSV オプションとして右クリックでエクスポートした 17 MB のファイルは、OSQL コードを使用して実行すると 1 GB になりました。使用した OSQL は次のとおりです。

-E -S CCCMSDSQL20,1819 -d SHARE_SCRUB -q "SET NOCOUNT ON" -i "C:\Scripts\.SQL" -o "C:\Scripts\.csv" -n -h-1 -s"," -w 700

私は同じことを達成できる TSQL スクリプトを好むので、それを SQL 実行タスクで使用して結果を得ることができます。

編集:フォルダー内の複数の .sql ファイルから複数の csv を生成する作業を行っています。現在、for each ループ コンテナーを使用してプロセス タスクを実行しています。プロセス実行タスクを変更して SQL タスクを実行し、このスクリプトを使用したい複数のファイルを生成します。

ループと CSV ファイルの生成を 1 つのスクリプトで実行できる TSQL コードを記述できれば、パッケージを使用せずに使用できます。

お時間をいただきありがとうございます。

4

1 に答える 1

1

osql のパラメーターは私が期待するものであり、同様のことを行う小さなデモを作成しただけで、問題なく動作します。

SSMS 内の実際の SQL スクリプトとその結果を調べて、必要以上に返されていないことを確認します。

また、SQL 実行タスクでもこれを使用するつもりなので、これはあなたが望むものではないかもしれませんが、bcp は SQL との間でデータをコピーするために特別に設計されており、純粋な T-SQL を使用できることを指摘します。 OSQL の結果をファイルにダンプする -o を使用せずに CSV ファイルを作成するには、opendatasource を使用します。

于 2012-10-25T16:54:41.450 に答える