Así que tengo un procedimiento almacenado Sybase que tiene 1 parámetro que es una lista separada por comas de cadenas y se ejecuta una consulta con en en un() cláusula IN:¿Cómo pasar una lista separada por comas a un procedimiento almacenado?
CREATE PROCEDURE getSomething @keyList varchar(4096)
AS
SELECT * FROM mytbl WHERE name IN (@keyList)
Como llamar en mi procedimiento almacenado con más de 1 valor en la lista? Hasta ahora he intentado
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: De hecho, encontré este page que tiene una gran referencia de las diversas formas de pas una matriz a un procedimiento almacenado
Espero que haya encontrado un método que funcione para usted. La página vinculada es una buena lista de opciones, ¡pero me alegra ver que la mayoría ya se sugirieron aquí! Paul sugirió el método 2/3, tablas temporales. Sugerí el método 1, sql dinámico. Brian y Abel sugieren un método XML, aunque no tengo licencia para xml en sybase, así que no sé si funcionará en Sybase. Similar al Método 4. – AdamH
posible duplicado de [Parametrización de una cláusula SQL IN?] (Http://stackoverflow.com/questions/337704/parameterizing-an-sql-in-clause) – icc97