Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

funciones en sql

Estas en el tema de funciones en sql en el foro de SQL Server en Foros del Web. hola estoy perdido en lo que se refiere a implementar funciones en sql por ejmplo me enviaron a desarrollar una funcion que devuelva el numero ...
  #1 (permalink)  
Antiguo 07/04/2006, 13:20
 
Fecha de Ingreso: abril-2006
Mensajes: 3
Antigüedad: 18 años
Puntos: 0
funciones en sql

hola estoy perdido en lo que se refiere a implementar funciones en sql por ejmplo me enviaron a desarrollar una funcion que devuelva el numero exacto de clientes de un determinado pais, ahora dicho pais sera determinado como parametro
  #2 (permalink)  
Antiguo 07/04/2006, 14:06
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Una consulta, que BD usas???
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 07/04/2006, 14:19
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Disculpa la consulta, un lapsus.
Según me comenta un compañero, la sintaxis de una función en sql Server es similar a la de Oracle.
Una función es un programa almacenado que puede tener 0 o los parámetros que desees. En tu caso habrá un parámetro de entrada que es el código de país.

Ejemplo:

create or replace function (varcodcli char(2))
return number is

nCont number;
begin

select count(*) into nCont
from tabla
where codcli=varcodcli;

return nCont;
end;

La sintaxis para Oracle seria de esa manera, tengo un dato de entrada que es el código de cliente, ese dato de entrada lo uso en mi consulta para hallar el total de clientes por pais.
Ahora, como hago para usar esa función???

Esa función puede ser "llamada" desde un select (no se si en Sql Server se haga lo mismo) de esta forma:

select pais,funcion(codcli)
from tabla2

Definitivamente, la tabla2 debe tener el campo codcli, para que puedas mandarlo como parámetro y pueda ser ejecutada correctamente la función...

Espero haberte ayudado en algo...
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #4 (permalink)  
Antiguo 07/04/2006, 14:20
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Me olvidaba, dentro de la función, siempre debes especificar el tipo de dato que vas a mandar como resultado, en este caso será un número, y ese valor es el que retornas....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 12/04/2006, 15:32
5v5
 
Fecha de Ingreso: abril-2005
Ubicación: Huehuetoca, Mexico
Mensajes: 138
Antigüedad: 19 años
Puntos: 0
ok...se estan refiriendo a sql server o oracle...pues en sql server se manejan los store procedures

CREATE PROCEDURE ClientesPais @Id_Pais varchar(5) AS
SELECT COUNT(*)
FROM Clientes
WHERE Clientes.Id_Pais = @Id_Pais


y si deseas optener el resultado y almacenarlo en una variable necesitas usar OUTPUT
por ejemplo

CREATE PROCEDURE ClientesPais @Id_Pais varchar(5), @Resultado int OUTPUT AS
SELECT @Resultado=(SELECT COUNT(*) FROM Clientes WHERE Clientes.Id_Pais = @Id_Pais)

y solo falta ejecutarla

EXEC ClientesPais @Id_Pais='555', @Resultado OUTPUT


bueno ..espero te ayude an algo....y si tengo algun error les agradeceria me lo indicaran ..gracias...hasta pronto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:14.