PDA

View Full Version : select * from table where uid in (@id)



hamed_bostan
پنج شنبه 10 خرداد 1386, 09:15 صبح
با سلام
من یه استورد پروسیجر دارم به شکل:


create procedure ListItem
(
@USR_ID nvarchar(1000)
)
AS
select * from ITEM where USR_ID in(@USR_ID)
returns



من به این مشکل بر خوردم که من می خوام یه رشته مثل 2,3,6,8,9,12 رو به عنوام usr_id بفرستم توی پروسیجر تا شرط برقرار شه اما بهم این ایراد رو می گیره:




conversion from type bigint to type nvarchar is not valid




ممنون می شم راهنمایی کنین

حامد مصافی
پنج شنبه 10 خرداد 1386, 12:58 عصر
USER_ID از نوع BIGINT تعریف شده؟؟

Behrouz_Rad
پنج شنبه 10 خرداد 1386, 13:29 عصر
کلاس IN بیش از یک مقدار رو به صورت پارامتریک نمی پذیره!
مقاله ی زیر رو بخون:
http://www.sommarskog.se/arrays-in-sql.html

hamed_bostan
پنج شنبه 10 خرداد 1386, 13:30 عصر
بله فیلد USR_ID در دیتابیس از نوع bigint هست اما @USR_ID در اشتورد پروسیجر از نوع nvarchar چون من می هوام از دستور in استفاده کنم می خوام تعدادی از usr_id ها رو به پروسیجر بفرستم .
اصلا چطور میشه یه رشته رو داخل دستور استوردپروسیجر گذاشت؟

hamed_bostan
جمعه 11 خرداد 1386, 01:25 صبح
کمککککککککککککککککککککککک ککک

whitehat
جمعه 11 خرداد 1386, 07:14 صبح
با توجه به اینکه در SP ها ما آرایه نداریم شاید بهتر باشه شما متغیر های خود را بصورت XML کنید و بفرستید سپس در اینجا می توانید بوسیله IN از آن استفاده کنید

hamed_bostan
شنبه 12 خرداد 1386, 09:24 صبح
میشه یه نمونه مثال بزنید؟
من چطور این اعداد رو از طریق xml بفستم؟

ealireza
شنبه 12 خرداد 1386, 13:25 عصر
میشه یه نمونه مثال بزنید؟
من چطور این اعداد رو از طریق xml بفستم؟
دوست من بهترین گزینه Table Variable هست

من قبلا اینو پرسیده بودم بگردی پیداش میکنی
موفق باشید

AminSobati
یک شنبه 13 خرداد 1386, 13:55 عصر
کلاس IN بیش از یک مقدار رو به صورت پارامتریک نمی پذیره!
مقاله ی زیر رو بخون:
http://www.sommarskog.se/arrays-in-sql.html

همه چیز در این لینک تشریح شده، اگر مطالعه کنید