lista de parametros procedure oracle

Respuesta de
a
Usuario
Saludos.

Necesitaría pasar una lista de parámetros (desde Delphi) de tipo number a un procedure para hacer algo así:

function StockArticulos(idArticulo in number, listaAlmacenes in ??) return number is
num number;
begin
select count(m.articulo)
into num
from movimientos_articulo m
where m.almacen in (listaAlmacenes)
grupy by m.articulo;
end;

Lo que no se es como pasar esta lista de numbers ya que puede contener uno o más elementos.

Gracias.
Experto
Hola.

Existen varias maneras de pasar una lista de valores en un solo parámetro. La elección depende del uso que se le quiera dar después.

Por ejemplo, para implementar un host-array yo utilizo variables tipo "tabla" (en realidad es como un array).

Pero para tu caso, una select con un "in (...)", yo lo haría pasando un parámetro tipo cadena (varchar2 por ejemplo) con la lista de valores separados con "coma" (1,2,3). Luego, en la función, utilizaría SQL dinámico para construir la query.

Si te interesa alguna de estas 2 maneras, dímelo y te mando u n ejemplo.

Un saludo,
Tinoco DBA (tinodba)
Usuario
Gracias, un ejemplo estaría bien.

Perdona que no te haya contestado hasta ahora, pero acabo de recibir la notificación en mi correo ahora mismo.
Experto
Hola.
No olvides cerrar la pregunta.
Gracias.
Experto
Hola.

Perdona por el retardo, pero he estado offline varios meses.

¿De cuál de las dos opciones quieres el ejemplo?


Un saludo,
Tinoco DBA
Usuario
Ya no es necesario.