ORA-06550 Y PLS-00103. Por favor ayuda.

Les adjunto el bloque que trato de ejecutar desde SQL*plus:
ACCEPT codigo_art PROMPT 'Inserte el código del artículo: ';
ACCEPT nuevo_precio PROMPT 'Inserte el nuevo precio del artículo: ';
DECLARE
codigo_art:='&codigo_art';
nuevo_precio:=&nuevo_precio;
codigo_art articulos.cod_art%TYPE;
nuevo_precio articulos.precio%TYPE;
antiguo_precio articulos.precio%TYPE;
BEGIN
SELECT precio INTO antiguo_precio
FROM articulos
WHERE cod_art=codigo_art;
DBMS_OUTPUT.PUT_LINE('El antiguo precio del articulo es: '||antiguo_precio);
UPDATE TABLE articulos
SET precio=nuevo_precio
WHERE cod_art=codigo_art;
DBMS_OUTPUT.PUT_LINE('El nuevo precio del articulo es: '||nuevo_precio);
END;
/
Este y otros muchos, me dan los mismos errores!. Siempre en la zona de asignación de variables de transferencia.
Les adjunto un error que se produjo con este paquete:
SQL> @ c:\oracle\script\prueba.txt
Inserte el código del artículo: B-LIC-01
Inserte el nuevo precio del artículo: 3000
Entrada truncada a 1 caracteres
codigo_art:='B-LIC-01';
*
ERROR en línea 2:
ORA-06550: línea 2, columna 12:
PLS-00103: Se ha encontrado el símbolo "=" cuando se esperaba uno de los
siguientes:
constant exception <an identifier>
<a double-quoted delimited-identifier> table LONG_ double ref
char time timestamp interval date binary national character
nchar
El símbolo "<an identifier>" ha sido sustituido por "=" para continuar.
ORA-06550: línea 3, columna 14:
PLS-00103: Se ha encontrado el símbolo "=" cuando se esperaba uno de los
siguientes:
constant exception <an identifier>
<a double-quoted delimited-identifier> table LONG_ double ref
char time timestamp interval date binary natio
ORA-06550: línea 16, columna 15:
PLS-00103: Se ha encontrado el símbolo "ARTICULOS" cuando se esperaba uno de
los siguientes:
(
Estoy muy estancado con esto, les quedaría muy agradecido si alguien me echara una mano.

1 respuesta

Respuesta
1
ACCEPT codigo_art PROMPT 'Inserte el código del artículo: ';
ACCEPT nuevo_precio PROMPT 'Inserte el nuevo precio del artículo;
DECLARE
codigo_art varchar2(10):=&codigo_art;
nuevo_precio number(4):=&nuevo_precio;
antiguo_precio articulos.precio%TYPE;
BEGIN
SELECT precio INTO antiguo_precio FROM articulos
WHERE cod_art=codigo_art;
DBMS_OUTPUT.PUT_LINE('El antiguo precio del articulo es: '||antiguo_precio);
UPDATE articulos SET precio=nuevo_precio
WHERE cod_art=codigo_art;
DBMS_OUTPUT.PUT_LINE('El nuevo precio del articulo es: '||nuevo_precio);
END;
/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas