1

フラット ファイル CSV にエクスポートした後、カンマ、引用符、およびタブを含む列は Excel で問題を引き起こします。ベンダーは、ファイルを Excel で読み取って手動で変更する必要があり、PL/SQL を使用して Oracle テーブルにロードするフラット ファイルの CSV 形式にする必要があります。

いくつかの質問を聞きたいんです:

  • これらの文字を SQL Server のテーブルから削除できますが、もっとスマートな方法はありますか?
  • ファイルをOracleにロードしようとすると、ExcelからCSVファイルを保存すると問題が発生しますか?
  • 最初の行に列名が必要です。フラットファイルへのエクスポートを使用するのではなく、すべてのファイル (最初の行のタイトル) を一度に生成する SQL の方法はありますか?

更新: Excel への MSSQL エクスポートを試みていますが、一部のテーブルで「定義されたフィールドが多すぎます」というエラーが表示されます。

4

3 に答える 3

2

ここにはいくつかのオプションがあると思います。

1) 別の区切り記号 (出力にないもの) ~ または ` または | を選択します。うまくいくかもしれません

2)各出力フィールドを引用符で囲みます.csvはそれを1つのフィールドとして扱うことを知っています.

2a) 出力に " が含まれている場合は、それらを 2 倍にする必要があるため、CSV/Excel は、新しいフィールドの終わりまたは始まりではなく、" を意味することを認識します。

3) この理由で CSV を使用せず、XML を使用してください。オラクルもそれを処理します..

4) インポート/エクスポートの位置を線引きではなくベースにする

あなたの質問への直接の回答:

しかし、よりスマートな方法はありますか?XML、SQL サーバー、および Oracle の両方をサポートし、そこからインポートできます。

Excelで行ったときにcsvに保存するのは理にかなっていますか?

とにかくファイルをOracleにロードしようとすると問題が発生しますか?すべての特殊文字を処理し、適切な記述で適切にエスケープしない限り、可能です。

フラットファイルへのエクスポートを使用するのではなく、すべてのファイルを1回の急降下(最初の行のタイル)で生成するSQLの方法はありますか? ここでも、XML または EDI をお勧めします。

于 2012-04-13T17:26:08.700 に答える
0

同様の課題に直面しました-SQLからExcelへのエクスポート...クエリ結果から簡単に実行できますが、右クリックして結果をCSVに保存します。問題は、コンマを含む列がテーブルの構造を乱すことでした。

これを使用して解決し、データをファイルOPENROWSETに直接送りました。Excelこれを行うために私が見つけた最もダミープルーフな方法: SQL Server export to Excel with OPENROWSET

私は Excel と MSSQL の両方のより新しいバージョンを使用したと思いますが、私のコードは次のとおりです。

insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Test.xlsx', [Sheet1$])
select * from TestTable

ありがとう!ケン

于 2014-12-03T16:44:22.113 に答える