Oracle - problema con sp en oracle

   
Vista:

problema con sp en oracle

Publicado por alvaro (1 intervención) el 29/05/2013 04:38:43
estoy intentando hacer un store procedure que me devuelva un consecutivo y me actualice una tabla, el problema es que soy nuevo en pl/sql oracle y cuando declaro el parametro de salida me sale error, compila pero no ejecuta.

No se como hacer para que me devuelva lo que queda en auxi
mi codigo es:


create or replace
PROCEDURE PA_CONSECUTIVO (TipoConsecutivo in VARCHAR,AUXI OUT number)

AS

BEGIN

SELECT consecutivo + 1 into AUXI
FROM tbl_consecutivo
WHERE UPPER(ltrim(rtrim(Tipo_Consecutivo))) = UPPER(ltrim(rtrim(TipoConsecutivo)));

UPDATE tbl_Consecutivo SET consecutivo = AUXI
WHERE upper(ltrim(rtrim(Tipo_Consecutivo))) = upper(ltrim(rtrim(TipoConsecutivo))) ;

END PA_CONSECUTIVO;

La tabla de la consulta es:

TIPO_CONSECUTIVO VARCHAR2(20 BYTE)
CONSECUTIVO NUMBER(38,0)
FECHAULTIMO DATE

les agradezco la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problema con sp en oracle

Publicado por Josh Fiction (2 intervenciones) el 30/05/2013 20:09:20
create or replace PROCEDURE PA_CONSECUTIVO (TipoConsecutivo in VARCHAR,AUXI OUT number) AS
BEGIN
SELECT consecutivo + 1 into AUXI
FROM tbl_consecutivo
WHERE UPPER(ltrim(rtrim(Tipo_Consecutivo))) = UPPER(ltrim(rtrim(TipoConsecutivo)));
UPDATE tbl_Consecutivo SET consecutivo = AUXI
WHERE upper(ltrim(rtrim(Tipo_Consecutivo))) = upper(ltrim(rtrim(TipoConsecutivo))) ;
commit;
END PA_CONSECUTIVO;
/

Prueba correr desde SQLPLUS

set serveroutput on

declare
auxi number;
begin
PA_CONSECUTIVO (10,auxi);
dbms_output.put_line ( 'AUXI: '||auxi);
end;
/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema con sp en oracle

Publicado por Luis Pablo (232 intervenciones) el 03/06/2013 16:13:51
Que mensaje de error te sale, si te aparece un mensaje de error ahí está el detalle, puedes decirnos que mensaje de error te sale??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema con sp en oracle

Publicado por Alixandro florian_do@yahoo.com (63 intervenciones) el 03/06/2013 17:24:12
Alvaro, tu problema es el siguiente;

PROCEDURE PA_CONSECUTIVO (TipoConsecutivo in VARCHAR,AUXI OUT number) AS
Declare
vAuxi tbl_consecutivo. Consecutivo%Type;
BEGIN

SELECT consecutivo + 1 into vAuxi
FROM tbl_consecutivo
WHERE UPPER(ltrim(rtrim(Tipo_Consecutivo))) = UPPER(ltrim(rtrim(TipoConsecutivo)))
For Update Nowait;

AUXI := vAuxi;

UPDATE tbl_Consecutivo SET consecutivo = AUXI
WHERE upper(ltrim(rtrim(Tipo_Consecutivo))) = upper(ltrim(rtrim(TipoConsecutivo))) ;

END PA_CONSECUTIVO;


Como se invoca:

Declare
vSecuencia tbl_consecutivo. Consecutivo%Type;
Begin
PA_CONSECUTIVO(‘10’, vSecuencia);
Dbms_Output.Put_Line(‘Nueva Secuencia ’|| vSecuencia);
End;
/

También puedes crear una función en vez de un procedure;

Espero esto ayude con tu caso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar