PDA

View Full Version : ارسال کویری طولانی به sql server



FreeMagic
سه شنبه 08 اسفند 1391, 10:13 صبح
من میخوام یه کویری طولانی به sql server ارسال کنم ولی پیغام خطا میده
پیغامش هم اینه:
string or binary date would be truncated.
the statement has been terminated
این کویری حدود 340هزار کارکتر هست. یعنی قراره طی یک پروسه حدود 900 رکورد رو اضافه بکنه و طولش این قدر شده
حالا باید چی کار کنم که این عملیات موفق باشه؟

modern_amin
سه شنبه 08 اسفند 1391, 10:23 صبح
فقط همونو بریز تو کامندتکست و اونو اجرا کن

من کوئری 90 خطی نوشتم مشکل نداشتم.......

FreeMagic
سه شنبه 08 اسفند 1391, 10:35 صبح
فقط همونو بریز تو کامندتکست و اونو اجرا کن

من کوئری 90 خطی نوشتم مشکل نداشتم.......
ببخشید منظورتون رو متوجه نشدم
نیاز فوری هم دارم
میشه با کد توضیح بدید
این کویری تقریبا 340 هزار کارکتر و حدود 900 خط هست:افسرده:

FreeMagic
سه شنبه 08 اسفند 1391, 11:30 صبح
فقط همونو بریز تو کامندتکست و اونو اجرا کن

من کوئری 90 خطی نوشتم مشکل نداشتم.......

ببخشید فارسی نوشتید متوجه نشدم. من همیشه همین کار رو میکنم.
هر رکورد 21 فیلد داره که به جز یکی بقیه رو کاربر میتونه خالی بزاره موقع پر کردن
حالا وقتی کویری من طوری باشه که تا 10 فیلد رو پر کنه مشکلی نداره ولی وقتی میخوام همه فیلد ها پر بشن طول رشته کویری زیاد میشه و اون پیغام رو میده

blackwidow64
سه شنبه 08 اسفند 1391, 13:01 عصر
این مشکل مربوط به خود اسکریپت شما میشه که دارید از یک متغیری با طول کم برای مقدار ورودی استفاده می کنید، مثلا اگه برای مقادیر کاراکتری از (NVARCHAR(MAX استفاده کنید این مشکل حل می شه!

FreeMagic
سه شنبه 08 اسفند 1391, 15:00 عصر
ببخشید میشه کمی بیشتر توضیح بدین.
یه چیزایی متوجه شدم ولی متوجه نشدم:متفکر:

tooraj_azizi_1035
چهارشنبه 09 اسفند 1391, 20:42 عصر
کوئری رو در چندین مرحله ارسال کن.
مثلاً اگه 100 دستور اول درج می کنه این 100 دستور رو ارسال کن بعد 100 دستور بعدی و الی آخر یعنی رشته رو خرد کن تکه ها رو یکی یکی پشت سر هم ارسال کن.

linux
پنج شنبه 10 اسفند 1391, 03:11 صبح
من میخوام یه کویری طولانی به sql server ارسال کنم ولی پیغام خطا میده
پیغامش هم اینه:
string or binary date would be truncated.
the statement has been terminated
این کویری حدود 340هزار کارکتر هست. یعنی قراره طی یک پروسه حدود 900 رکورد رو اضافه بکنه و طولش این قدر شده
حالا باید چی کار کنم که این عملیات موفق باشه؟
طول یکی از فیلدها بیشتر از اندازه تعریف شده است فرض کن یک فیلد به صورت nvarchar(10) تعریف کردی حال می خواهی یک اسمی توش بریزی که ۱۵ کارکترهست مشکل این هست و الا اندازه کویری اصلا اهمیتی نداره