FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
Esa sintaxis funcionará desde SqlPlus, no especifícas de donde estas llamando esta función, de todos modos, te recomiendo probar esta sintaxis:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
Si coloque el ; al finalizar la linea
|
#6
|
||||
|
||||
¿Que quiere decir "no funcionó"?
__________________
E pur si muove |
#7
|
|||
|
|||
emite elmensaje
"comando SQL no terminado correctamente" |
#8
|
||||
|
||||
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.
__________________
E pur si muove |
#9
|
|||
|
|||
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 |
#10
|
||||
|
||||
¡¡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!!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#11
|
||||
|
||||
1.- Por favor, encierra tu código entre tags [code] para que se pueda leer bien la próxima vez
2.- No pones el nobre del procedimiento en el ejemplo de código 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
__________________
E pur si muove |
#12
|
||||
|
||||
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.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#13
|
|||
|
|||
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. |
#14
|
|||
|
|||
gracias jachguate
|
#15
|
|||
|
|||
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
__________________
Ernesto R. |
|
|
|