开发者社区> 问答> 正文

如何将逗号分隔的列表传递给存储过程?

所以我有一个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

展开
收起
游客ufivfoddcd53c 2020-01-03 16:49:57 834 0
1 条回答
写回答
取消 提交回答
  • 您是否需要使用逗号分隔的列表?在过去的几年中,我一直采用这种想法并传递XML文件。openxml“函数”采用字符串并将其设置为类似于xml的字符串,然后如果您使用数据创建临时表,则该表是可查询的。

    2020-01-03 16:50:18
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多