所以我有一个Sybase存储的proc,它带有1个参数,该参数是逗号分隔的字符串列表,并在IN()子句中使用in运行查询:
CREATE PROCEDURE getSomething @keyList varchar(4096)
AS
SELECT * FROM mytbl WHERE name IN (@keyList)
如何在列表中调用具有大于1的值的存储过程?到目前为止,我已经尝试过
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
您是否需要使用逗号分隔的列表?在过去的几年中,我一直采用这种想法并传递XML文件。openxml“函数”采用字符串并将其设置为类似于xml的字符串,然后如果您使用数据创建临时表,则该表是可查询的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。