SQL Server - Funcion equivalente de oracle en Sql Server

   
Vista:

Funcion equivalente de oracle en Sql Server

Publicado por Armando (2 intervenciones) el 22/12/2009 21:46:55
Saludos,
estoy tratanto de implementar algo que ya realice en oracle pero con Sql Server, en oracle defini un paquete asi:

create or replace package body PKG_CENTRAL_POLIZAS is
procedure sp_dual(P_CADENA VARCHAR2, salida out cur_consulta) IS
BEGIN
OPEN SALIDA FOR 'Select ' || P_CADENA || ' from dual';
END;
procedure sp_dual_for_multirow(P_CADENA VARCHAR2, salida out cur_consulta) IS
aux cur_consulta;
BEGIN
OPEN aux FOR 'Select ' || P_CADENA || ' from dual';
fetch aux into salida;
END;
end PKG_CENTRAL_POLIZAS;

El objetivo es recibir una cadena que contiene una llamada a una funcion y que te regrese ya sea un dato (en el caso de sp_dual ) o un cursor con los resultados de la funcion en el caso de sp_dual_for_multirow.

Se me ocurrio que deberia ser algo asi:

CREATE PROCEDURE dbo.selectdual(@pSQL varchar)
AS
BEGIN
Exec @pSQL;
END

Pero me regresa un error, alguien tiene alguna idea, muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

RE:Funcion equivalente de oracle en Sql Server

Publicado por Isaias (3182 intervenciones) el 23/12/2009 19:11:27
¿Intentaste crear una FUNCION DE USUARIO?

SELECT dbo.fn_MyFuncion (@Parametros)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion equivalente de oracle en Sql Server

Publicado por Armando (2 intervenciones) el 23/12/2009 19:15:18
mm... no pero ya encontre cual era el problema, el codigo correcto es el siguiente:

CREATE PROCEDURE dbo.selectdual(@pSQL varchar(500))
AS
BEGIN
Exec(@pSQL);
END

[ Faltaba especificar una logitud al parametro y poner el argumento de Exec entre parentesis ]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

RE:Funcion equivalente de oracle en Sql Server

Publicado por Isaias (3182 intervenciones) el 28/12/2009 19:55:23
EXEC(@cadena), ya es una codificacion antigua,utiliza EXEC SP_EXECUTESQL @MyNVarchar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar