Vì vậy, tôi có một proc lưu trữ Sybase rằng mất 1 tham số đó là một dấu phẩy tách ra danh sách các chuỗi và chạy một truy vấn với ở trong một IN() khoản:Làm cách nào để chuyển danh sách được phân tách bằng dấu phẩy sang một thủ tục được lưu trữ?
CREATE PROCEDURE getSomething @keyList varchar(4096)
AS
SELECT * FROM mytbl WHERE name IN (@keyList)
Làm thế nào để gọi proc lưu trữ của tôi với hơn 1 giá trị trong danh sách? Cho đến nay tôi đã cố gắng
exec getSomething 'John' -- works but only 1 value
exec getSomething 'John','Tom' -- doesn't work - expects two variables
exec getSomething "'John','Tom'" -- doesn't work - doesn't find anything
exec getSomething '"John","Tom"' -- doesn't work - doesn't find anything
exec getSomething '\'John\',\'Tom\'' -- doesn't work - syntax error
EDIT: Tôi thực sự thấy page này mà có một tài liệu tham khảo rất tốt trong những cách khác nhau để pas một mảng đến một sproc
Tôi hy vọng bạn đã tìm được phương pháp phù hợp với mình. Trang được liên kết là danh sách các tùy chọn tốt, nhưng tôi rất vui khi thấy rằng hầu hết các tùy chọn đã được đề xuất ở đây! Phao-lô đề xuất phương pháp 2/3, các bảng tạm thời. Tôi đã đề xuất phương pháp 1, sql động. Brian và Abel đề xuất một phương pháp XML, mặc dù tôi không được cấp phép cho xml trong Sybase vì vậy không biết nếu điều đó sẽ làm việc trong Sybase. Tương tự như phương pháp 4. – AdamH
bản sao có thể có của [Tham số hóa mệnh đề SQL IN?] (Http://stackoverflow.com/questions/337704/parameterizing-an-sql-in-clause) – icc97