Fundamentals PL/SQL: Chapter 01 Declaring Variables

2 comentarios para “Fundamentals PL/SQL: Chapter 01 Declaring Variables”

  1. Martin Coronel Flores Dice:

    Para diferenciar variables con el mismo nombre en diferentes bloques anidados, es posible utilizar etiquetas las cuales nos proveen de una forma fácil para referenciarlas.

    En el ejemplo siguiente, donde dos bloques pl/sql poseen variables con el mismo nombre, utilizamos la etiqueta <> para referenciar a las del nivel más externo dentro del bloque.

    SET SERVEROUTPUT ON
    <>
    DECLARE
    v_sal NUMBER(7,2):=60000;
    v_comm NUMBER(7,2):= v_sal*0.20;
    v_message VARCHAR2(255):=’ eligible for commission’;
    BEGIN
    DECLARE
    v_sal NUMBER(7,2):=50000;
    v_comm NUMBER(7,2):= 0;
    v_total_comp NUMBER(7,2):=v_sal+v_comm;
    BEGIN
    v_message:=’CLERK not’||v_message;
    outer.v_comm:=v_sal*0.30;
    DBMS_OUTPUT.PUT_LINE(‘Valor v_message posicion 1: ‘||v_message);
    DBMS_OUTPUT.PUT_LINE(‘Valor v_comm posicion 1: ‘||v_comm);
    DBMS_OUTPUT.PUT_LINE(‘Valor outer.v_comm posicion 1: ‘||outer.v_comm);
    END;
    v_message:=’SALESMAN’||v_message;
    — DBMS_OUTPUT.PUT_LINE(‘Valor v_total_comp posicion 2: ‘||v_total_comp);–error no puedo referenciar
    –desde afuera hacia adentro.(al reves sí)
    DBMS_OUTPUT.PUT_LINE(‘Valor v_comm posicion 2: ‘||v_comm);
    DBMS_OUTPUT.PUT_LINE(‘Valor v_message posicion 2: ‘||v_message);
    END;
    ____________________________________________________________________

    Respuesta:

    Valor v_message posicion 1: CLERK not eligible for commission
    Valor v_comm posicion 1: 0
    Valor outer.v_comm posicion 1: 15000
    Valor v_comm posicion 2: 15000
    Valor v_message posicion 2: SALESMANCLERK not eligible for commission
    Procedimiento PL/SQL terminado correctamente.

  2. Freddy Ojeda Dice:

    El valor inicial de cualquier variable, independientemente de su tipo, es NULL. Podemos asignar valores a las variables, usando el operador “: =”.
    La asignacion puede ocurrir ya sea inmediatamente cuando se la declara, o en cualquier otra parte ejecutable del programa. Como se muestra en el siguiente ejemplo:

    DECLARE

    v_variable NUMBER := 33;

    BEGIN

    v_variable := v_variable + 7;

    END;

    Correr este programa no afecta en nada a la base de datos


Escribe un comentario