Como pregunto si existe un stored procedure?
En sql server es "if exist" en oracle como es? por ej: if exists (select * from ALL_OBJECTS where OBJECT_NAME = 'NOMBRE_STORED') drop procedure NOMBRE_STORED
pero el if exist no funciona, necesito la funcion de oracle para saber si existe un stored, desde ya muchas gracias y espero me entiendan
pero el if exist no funciona, necesito la funcion de oracle para saber si existe un stored, desde ya muchas gracias y espero me entiendan
En pl/sql existe el sql%notfound que te dice si una sentencia sql no ha devuelto ningún registro. También puedes utilizar la exception "when_no_data_found". En un prodediciento antes del "end" puedes poner la lÃnea "exception when_no_data_found then" y a continuación la condición que debe cumplir cuando el registro no exista. Si recupera registros (en una select con un procedure debes poner un insert into antes del from y guardar el valor o valores que saques de la consulta) sólo tienes que poner la condición despues de la sentencia sql.
Espero haberte ayudado.
Un saludo, Isabel.
Espero haberte ayudado.
Un saludo, Isabel.
Puedes hacer una consulta sobre la vista ALL_SOURCE. Esta vista tiene 5 campos: OWNER, NAME, TYPE, LINE y TEXT.
OWNER contiene el nombre del esquema en el que está alojado el procedimiento o paquete, NAME es el nombre del procedimiento, TYPE es el tipo (ej. PACKAGE, PROCEDURE), LINE contiene el número de lÃnea y TEXT el texto de esa lÃnea.
SELECT *
FROM ALL_SOURCE
WHERE OWNER = \'MIESQUEMA\'
AND TYPE = \'PROCEDURE\'
AND NAME = \'MIPROCEDIMIENTO
Esta select devolverá todo el contenido del procedimiento, por ejemplo.
Salu2.
OWNER contiene el nombre del esquema en el que está alojado el procedimiento o paquete, NAME es el nombre del procedimiento, TYPE es el tipo (ej. PACKAGE, PROCEDURE), LINE contiene el número de lÃnea y TEXT el texto de esa lÃnea.
SELECT *
FROM ALL_SOURCE
WHERE OWNER = \'MIESQUEMA\'
AND TYPE = \'PROCEDURE\'
AND NAME = \'MIPROCEDIMIENTO
Esta select devolverá todo el contenido del procedimiento, por ejemplo.
Salu2.
