Errores en con consultas y bloque de oracle
Publicado por gpoveda (1 intervención) el 26/04/2019 02:44:51
Buenas, estoy recibiendo estos dos errores al ejecutar mi consulta, y ya no se que pueda ser.
Error(24,1): PLS-00103: Se ha encontrado el símbolo "EXECUTE"
Error(29,18): PLS-00103: Se ha encontrado el símbolo "ON" cuando se esperaba uno de los siguientes: := . ( @ % ; not null range default character
Error(24,1): PLS-00103: Se ha encontrado el símbolo "EXECUTE"
Error(29,18): PLS-00103: Se ha encontrado el símbolo "ON" cuando se esperaba uno de los siguientes: := . ( @ % ; not null range default character
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
SET ServerOutput ON;
SET VERIFY OFF;
CREATE OR REPLACE PROCEDURE desglose_cambio(
importe NUMBER)
AS
cambio NATURAL := importe;
moneda NATURAL;
v_uni_billete NATURAL;
BEGIN
DBMS_OUTPUT.PUT_LINE('***** DESGLOSE DE: ' || importe );
WHILE cambio > 0 LOOP
IF cambio >= 10000 THEN
moneda := 10000;
ELSIF cambio >= 5000 THEN
moneda := 5000;
ELSIF cambio >= 2000 THEN
moneda := 2000;
END IF;
v_uni_billete := TRUNC(cambio / moneda);
DBMS_OUTPUT.PUT_LINE(v_uni_billete ||
' Billetes de: ' || moneda || ' Colones ');
cambio := MOD(cambio, moneda);
END LOOP;
END desglose_cambio;
execute desglose_cambio(17000);
SET ServerOutput ON;
SET VERIFY OFF;
CREATE OR REPLACE PROCEDURE desglosecambio2(
importe NUMBER)
AS
cambio NATURAL := importe;
moneda NATURAL;
v_uni_billete NATURAL;
BEGIN
DBMS_OUTPUT.PUT_LINE('*** DESGLOSE DE: ' || importe );
WHILE cambio > 0 LOOP
IF cambio >= 100 THEN
moneda := 100;
ELSIF cambio >= 20 THEN
moneda := 20;
END IF;
v_uni_billete := TRUNC(cambio / moneda);
DBMS_OUTPUT.PUT_LINE(v_uni_billete ||
' Billetes de: ' || moneda || ' Dolares ');
cambio := MOD(cambio, moneda);
END LOOP;
END desglosecambio2;
execute desglosecambio2(640);
create table cuenta (
id_cuenta number,
saldo_colones number,
saldo_dolares number
);
insert into cuenta values(1,100000,1000);
declare
numero_cuenta number:= &numero_cuenta;
monto_retirar number := &monto_retirar;
opcion number := &1colones_2dolares;
saldo_c number;
saldo_d number;
cursor colones is select saldo_colones from cuenta where id_cuenta = numero_cuenta;
cursor dolares is select saldo_dolares from cuenta where id_cuenta = numero_cuenta;
begin
open colones;
open dolares;
fetch colones into saldo_c;
fetch dolares into saldo_d;
if opcion = 1 then
if monto_retirar >= saldo_c then
dbms_output.put_line('saldo insuficiente');
else
desglose_cambio(monto_retirar);
end if;
end if;
if opcion = 2 then
if monto_retirar >= saldo_d then
dbms_output.put_line('saldo insuficiente');
else
desglosecambio2(monto_retirar);
end if;
end if;
end;
/
Valora esta pregunta


0