Terima kasih Tuhan, terima kasih atas jawaban @ user_0 dan jawaban dan komentar samar @ user3494351 dan posting forum kuno ini, saya akhirnya menemukan ini setelah beberapa jam membenturkan kepala ke dinding.
Masalahnya adalah BCP suka menambahkan 8 byte tambahan ke file secara default. Ini merusak file dan membuatnya tidak dapat dibuka jika Anda hanya menggunakan flag -n asli.
Namun, BCP memungkinkan Anda untuk menentukan file format sebagai output yang memungkinkan Anda untuk tidak menambahkan 8 byte tambahan. Jadi saya punya tabel yang saya buat (untuk digunakan dalam kursor) di SQL Server yang hanya memiliki SATU ROW dan SATU KOLOM dengan data biner saya. Tabel harus ada saat Anda menjalankan perintah pertama.
Di baris perintah pertama-tama Anda harus melakukan ini:
bcp MyDatabase.MySchema.MyTempTable format nul -T -n -f formatfile.fmt
Ini membuat formatfile.fmt di direktori tempat Anda berada. Saya melakukannya di drive E:\. Berikut tampilannya:
10.0
1
1 SQLBINARY 8 0 "" 1 MyColumn ""
Itu 8 di sana adalah variabel yang bcp mengatakan berapa banyak byte untuk ditambahkan ke file Anda. Ini adalah bajingan yang merusak file Anda. Ubah pengisap itu menjadi 0:
10.0
1
1 SQLBINARY 0 0 "" 1 MyColumn ""
Sekarang jalankan saja skrip BCP Anda, lepaskan flag -n dan sertakan flag -f:
bcp "SELECT MyColumn FROM MyDatabase.MySchema.MyTempTable" queryout "E:\MyOutputpath" -T -f E:\formatfile.fmt