Ejecucion de funciones
Hola, no encuentro la manera de ejecutar una funcion creada por mi en Oracle 9i.
Probe con: "exec generar_id(parametro)" pero no funciono. Alguien pordria ayudarme. Muchas gracias. |
Esa sintaxis funcionará desde SqlPlus, no especifícas de donde estas llamando esta función, de todos modos, te recomiendo probar esta sintaxis:
Saludos! |
En sql plus no funciona.
Primero quiero encontrar la forma de probar desde sql plus y luego introducirla al codigo. Esta funcion debo llamarla finalmente desde codigo perl. |
Cita:
|
Si coloque el ; al finalizar la linea
|
¿Que quiere decir "no funcionó"?
|
emite elmensaje
"comando SQL no terminado correctamente" |
pues a mi la sintaxis exec "nombre_procedure(parametro1, parametro2);" me funciona bien. Asegúrate del punto y coma final y de que sea un procedure, no una function.
|
Mira yo tengo este sp en la base:
( NOMTABLA IN VARCHAR2 DEFAULT NULL, NUEVO_ID OUT number ) as begin SELECT S.SECUENCIA INTO GENERAR_ID_S.NUEVO_ID FROM omwb_login1.SECUEN S WHERE S.TABLENAME = NOMTABLA; end GENERAR_ID_S; y lo llamo asi: exec omwb_login1.generar_id_s('ESTADO'); y me da este error PLS-00306: número o tipos de argumentos erróneos al llamar a 'GENERAR_ID_S' ORA-06550: línea 1, columna 7: PL/SQL: Statement ignored que estoy haciendo mal? Gracias por la ayuda |
¡¡No te puedo creer!!... nos estuviste engañando :)
Esto no te dice nada: PLS-00306: número o tipos de argumentos erróneos al llamar a 'GENERAR_ID_S' Simplemente el procedure tiene dos parámetros y vos solo estas pasando uno!! |
1.- Por favor, encierra tu código entre tags [code] para que se pueda leer bien la próxima vez :confused:
2.- No pones el nobre del procedimiento en el ejemplo de código :confused: :confused: 3.- Si se supone que el procedimiento es el que aparece en el error, me parece que el propio mensaje te da la solucion: el procedimiento espera dos parámetros y tú solamente le pasas uno :confused: :confused: :confused: |
Cita:
Por lo tanto, debes hacer algo como:
Eso debiera funcionar tanto en pl/sql como en un query cualquiera desde el cliente. Hasta luego. ;) |
no es asi yo habia creado una funcion
y lo transforme a un sp par seguir el consejo que me dieron pero en realidad lo que necesito es una funcion no un sp. |
gracias jachguate
|
Hola a todos:
Para ejecutar una funcion en PLSQL si no mal recuerdo existe la expresión: select "NombreFuncion(Parametro)" from dual; Ahora bien, para llamar a la función desde el SP necesitarás hacer lo que te recomienda jachguate de asignarle el valor de la función a una variable. Espero te sirva Saludos :cool: |
La franja horaria es GMT +2. Ahora son las 21:25:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi