Saya memiliki sumber database PostgreSQL lama (ODBC) yang saya coba migrasi ke skema SQL Server baru menggunakan SSIS. Saya mendapat peringatan yang mengatakan:
Metode pengambilan 'Baris demi baris' diberlakukan karena tabel memiliki kolom LOB. Konten kolom adalah LOB
Masalahnya, tidak ada kolom yang benar - benar perlu menjadi LOB. Ada beberapa yang merupakan tipe TEKS, tetapi bisa dengan mudah masuk dalam varchar (maks). Bahkan orang asing, meskipun, sebagian besar sudah berada varchars, tetapi tampaknya apa pun lebih varchar (128) sedang diperlakukan seolah-olah itu adalah LOB (dalam sifat muka, jenis data DT_NTEXT).
Saya acara mencoba melakukan perintah SQL manual di mana saya secara eksplisit melemparkan setiap tipe string ke varchar dengan panjang yang sesuai dalam pernyataan pilih, dan mereka masih ditetapkan sebagai DT_NTEXT di sumber ODBC.
Saya bukan DBA, jadi sangat mungkin saya melakukan sesuatu yang sangat bodoh. Saya hanya ingin tahu cara terbaik untuk memastikan bahwa jenis berakhir sebagai varchars sehingga saya dapat mengambil batch. Ada ide?
Dalam hal ini penting, saya menggunakan SSIS-BI 2014 di dalam Visual Studio 2013.
varchar(max)
hanya singkatan untuk mengatakan bahwa data kolom dapat masuk dalam ukuran varchar maksimum, yaitu sekitar 4000, untuk tujuan SSIS, saya pikir. Saya sebenarnya tidak melakukan apa pun untuk varchar(max)
; Namun, saya memang melemparkan beberapa kolom ke varchar(4000)
, hanya untuk aman.