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

Basico: Sentencia para crear funciones

Estas en el tema de Basico: Sentencia para crear funciones en el foro de Bases de Datos General en Foros del Web. tengo algunas dudas sobre la sintaxis de la funcion haber si me dan luces xD, porque esto es lo que aparece en el manual seccion ...
  #1 (permalink)  
Antiguo 13/12/2009, 20:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 101
Antigüedad: 16 años, 2 meses
Puntos: 1
Basico: Sentencia para crear funciones

tengo algunas dudas sobre la sintaxis de la funcion haber si me dan luces xD, porque esto es lo que aparece en el manual seccion 19.2.1

Cita:
CREATE FUNCTION sp_name ([parameter[,...]])
RETURN type
[characteristic...] routine_body

parameter:
[IN / OUT / INOUT] param_name

type:
Any valid MySQL data type

characteristic:
LANGUAGE SQL
(NOT) DETERMINISTIC
{ CONTAINS SQL / NO SQL / READS SQL DATA / MODIFIES SQL DATA}
SQL SECURITY { DEFINER / INVOKER }
COMMENT 'string'

routine_body:
procedimientos almacenados o comandos SQL validos
Segun entendi para crear una funcion debo hacer lo siguiente

CREATE FUNCTION "nombre de la funcion" (ej: CHAR(20)) << cualquier funcion numerica, cadena de caracteres o de fecha y hora
RETURN ej: CHAR(50) << cualquier funcion numerica, cadena de caracteres o de fecha y hora RELACIONADA OBVIAMENTE con la funcion anterior o sea no colocar una numerica con una de texto o de fecha aunque en algunos casos se autoconvierten entre si dependiendo de cual tenga mayor prioridad.
RETURNS funcion_preestablecida (parametros)

Estoi bien?

Edito: titulo "Sintaxis para crear funciones"
Edito 2: Aqui esta la pregunta que habia hexo

JOKEROBSCURO

Última edición por JOKEROBSCURO; 14/12/2009 a las 13:45
  #2 (permalink)  
Antiguo 14/12/2009, 01:24
 
Fecha de Ingreso: febrero-2008
Mensajes: 101
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Basico: Sentencia para crear funciones

ya encontre lo que buscaba con esto... asi es que borrare el tema...

JOKEROBSCURO...
  #3 (permalink)  
Antiguo 14/12/2009, 06:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Basico: Sentencia para crear funciones

En vez de borrar el tema, podrías compartir la respuesta a tu mismo problema.

No crees?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 14/12/2009, 13:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 101
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Basico: Sentencia para crear funciones

es que pense que era algo obvio que todos sabian... y solo yo no tenia idea... vuelvo a poner la pregunta y la respuesta que encontre...xD

JOKEROBSCURO...
  #5 (permalink)  
Antiguo 14/12/2009, 14:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Basico: Sentencia para crear funciones

Y, siempre se suscriben beginners como tu, de modo que es mejor que tengan algo para curiosear.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 14/12/2009, 14:13
 
Fecha de Ingreso: febrero-2008
Mensajes: 101
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Basico: Sentencia para crear funciones

FUENTE WIKIPEDIA >> http://es.wikipedia.org/wiki/PL/SQL <<

Cita:
Funciones en PLSQL

Una función es un bloque de código PL/SQL que tiene las mismas características que un procedimiento almacenado. La diferencia estriba que una función devuelve un valor al retornar. Al devolver un valor puede ser llamada como parte de una expresión.

Cita:
La sintaxis sería
CREATE [OR REPLACE] FUNCTION nombre_función
[nombre_parámetro modo tipodatos_parametro ]
RETURN tipodatos_retorno IS | AS
bloque de código
Donde "modo" puede contener los valores IN, OUT, IN OUT. Por defecto tiene el valor IN si no se pone nada. IN indica que el parámetro es de entrada y no se podrá modificar. OUT indica que el parámetro es de salida con lo que el procedimiento devolverá un valor en él. IN OUT indica que el parámetro es de entrada/salida. Con lo que al llamar al procedimiento se le dará un valor que luego podrá ser modificado por el procedimiento y devolver este nuevo valor. Sin embargo, en este caso solo tendría sentido (por el concepto de función en sí mismo) declarar parámetros del tipo IN y devolver el valor como retorno de la función.
"tipodatos_parametro" y "tipodatos_retorno" indican el tipo de datos que tendrá el parámetro y el valor de retorno de la función respectivamente según lo indicado en Tipos de datos Oracle/PLSQL

Cita:
Para borrar una función de la base de datos
DROP FUNCTION nombre_función
Los procedimientos y funciones se pueden agrupar en unas estructuras llamadas Paquetes.
Esto es lo que me resulta en MySQL

CREATE FUNCTION "nombre_base_de_datos"."nombre_tabla"(parametr o, operador()) RETURNS operador()
RETURN operador()

lo saque de este ejemplo:

CREATE FUNCTION `test`.`hello`(s CHAR(20)) RETURNS CHAR(50)
RETURN CONCAT('Hello, ',s,'!')

Como aun no he hexo el resumen de operadores y cuales se pueden combinar o no, no me ha resultado hacer otra funcion mas que el ejemplo, trate de hacer una para encriptar el campo contraseña, pero no me resulto bien, supongo que dps que haga el resumen me resultara porque sabre que sirve para que o sino los estare molestando XD otra vez... en el caso particular del ejm que encontre en el manual y que me funciona, porque probe varios, no entiendo que son esa s y ese ! y yo supuse que son operadores, ahora me dedicare a entender las restricciones de los operadores para que me resulte lo de encriptar

JOKEROBSCURO
  #7 (permalink)  
Antiguo 14/12/2009, 14:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 101
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Basico: Sentencia para crear funciones

Cita:
Y, siempre se suscriben beginners como tu, de modo que es mejor que tengan algo para curiosear.
anotado...

JOKEROBSCURO...
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:13.