Duda en oracle 11g PL/SQL Urgente

Hola buenas, primero no se si este tema va en este foro, si no es así decidmelo [360º]
El problema es que intento modificar un campo de la tabla en oracle 11g con la instrucción SELECT INTO, pero me da este error:

ORA-06550: line 7, column 58: PLS-00201: identifier 'SALARIO' must be declared ORA-06550: line 7, column 5: PL/SQL: Statement ignored

Según el manual que tengo, está bien hecho pero me sale ese error. Dejo también el script:

DECLARE
v_salario NUMBER(9,2);
V_nombre VARCHAR2(50);
BEGIN
SELECT salario,nombre INTO v_salario, v_nombre
FROM empleados WHERE id_empleado=12345;
SYSTEM_OUTPUT.PUT_LINE('El nuevo salario será de' ||salario*1.2|| 'euros');
END;


¿Agluien sabe por qué me da error? Tengo la tabla creada con los datos introducidos, por si alguien pregunta eso jeje

PD: Estoy aprendiendo y no controlo mucho aún.

Gracias de antemano
Hola,

En la línea

SYSTEM_OUTPUT.PUT_LINE('El nuevo salario será de' ||salario*1.2|| 'euros');


al nombre de la variable le falta el prefijo "v_".

Otra cosa, para mostrar resultados normalmente utilizo DBMS_OUTPUT. Ahora hablo de memoria, pero no recuerdo que "SYSTEM_OUTPUT" sea una instrucción válida de Oracle.

Con las correcciones, la instrucción quedaría así:

DBMS_OUTPUT.PUT_LINE('El nuevo salario será de ' || v_salario * 1.2 || ' euros');


Por cierto, estas instrucciones lo que hacen es obtener y mostrar el valor del campo salario, no modifican el valor de ese campo en la tabla. Para cambiar el valor del campo de una tabla, debes utilizar la instrucción UPDATE.

Un saludo
r04drunner escribió:Hola,

En la línea

SYSTEM_OUTPUT.PUT_LINE('El nuevo salario será de' ||salario*1.2|| 'euros');


al nombre de la variable le falta el prefijo "v_".

Otra cosa, para mostrar resultados normalmente utilizo DBMS_OUTPUT. Ahora hablo de memoria, pero no recuerdo que "SYSTEM_OUTPUT" sea una instrucción válida de Oracle.

Con las correcciones, la instrucción quedaría así:

DBMS_OUTPUT.PUT_LINE('El nuevo salario será de ' || v_salario * 1.2 || ' euros');


Por cierto, estas instrucciones lo que hacen es obtener y mostrar el valor del campo salario, no modifican el valor de ese campo en la tabla. Para cambiar el valor del campo de una tabla, debes utilizar la instrucción UPDATE.

Un saludo


Si tienes razón en todo jeje, estoy verde aún y me faltan muchos conceptos básicos. Gracias :) lo probaré en cuanto coja el PC.

Un saludo
Bases de datos entrometiendose en la funcionalidad y códigos que intentan imponer la lógica de datos a las bases de datos...

Como la vida misma oiga.

PD: ¿Se solucionó?.
P4j4r0 N3gr0 escribió:Bases de datos entrometiendose en la funcionalidad y códigos que intentan imponer la lógica de datos a las bases de datos...

Como la vida misma oiga.

PD: ¿Se solucionó?.


Tú lo has dicho jajaja, si funcionó a la perfección, maldito manual... [+furioso]

Gracias amigo XD
4 respuestas