Oracle - Problemas con el "DECLARE"

 
Vista:

Problemas con el "DECLARE"

Publicado por Slei (1 intervención) el 25/01/2012 20:14:20
buenas tardes amigos espero me puedan ayudar xD

antes que todo aclaro que ya lei en varias guias que vi por alli y almenos a a mi parecer esto que gaho esta bien

create or replace procedure montoanual

DECLARE
Montoanual pensionados.monto%TYPE;

BEGIN
select monto into Montoanual from pensionados where monto>-1;
DBMS_OUTPUT.PUT_LINE(Montoanual*12);

END;

original mente estaba sin el where monto>-1;
el hecho es que por mas q e leido no le consigo como soucionar el error siguiente:

Warning: la ejecución ha terminado con advertencias
2/1 PLS-00103: Se ha encontrado el símbolo "DECLARE" cuando se esperaba uno de los siguientes:

( ; is with authid as cluster compress order using compiled
wrapped external deterministic parallel_enable pipelined

9/4 PLS-00103: Se ha encontrado el símbolo "end-of-file" cuando se esperaba uno de los siguientes:

begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe

y de la guia que estoy leyendo hacen asi y a ese codigo no le da error;

DECLARE
Vnom clientes.nombre%TYPE;

BEGIN
select nombre into Vnom from clientes where NIF= '&V_nif';
DBMS_OUTPUT.PUT_LINE (Vnom);

END;

entonces la cosa es q no se sai el error es por algo q hago mal, o por que hago ese declare dentro de un procedure
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
sin imagen de perfil

Problemas con el

Publicado por Javier M (17 intervenciones) el 27/02/2012 02:21:12
hola
se usa declare cuando crear bloques anonimos pero cuando es un procedure
deberia ser algo asi

create or replace procedure montoanual
is
Montoanual pensionados.monto%TYPE;

BEGIN
select monto into Montoanual from pensionados where monto>-1;
DBMS_OUTPUT.PUT_LINE(Montoanual*12);

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