Buscar..


Modelo de asignaciones en PL / SQL.

Todos los lenguajes de programación nos permiten asignar valores a las variables. Por lo general, un valor se asigna a la variable, de pie en el lado izquierdo. El prototipo de las operaciones de asignación generales en cualquier lenguaje de programación contemporáneo se ve así:

left_operand assignment_operand right_operand instructions_of_stop

Esto asignará el operando derecho al operando izquierdo. En PL / SQL esta operación se ve así:

left_operand := right_operand;

El operando izquierdo debe ser siempre una variable . El operando derecho puede ser valor, variable o función:

set serveroutput on
declare
  v_hello1 varchar2(32767);
  v_hello2 varchar2(32767);
  v_hello3 varchar2(32767);
  function hello return varchar2 is begin return 'Hello from a function!'; end;
begin
   -- from a value (string literal)
  v_hello1 := 'Hello from a value!';
   -- from variable
  v_hello2 := v_hello1;
  -- from function
  v_hello3 := hello; 

  dbms_output.put_line(v_hello1);
  dbms_output.put_line(v_hello2);
  dbms_output.put_line(v_hello3);
end;
/

Cuando el bloque de código se ejecuta en SQL * Plus, se imprime la siguiente salida en la consola:

Hello from a value!
Hello from a value!
Hello from a function!

Hay una característica en PL / SQL que nos permite asignar "de derecha a izquierda". Es posible hacerlo en sentencia SELECT INTO. Prototipo de este instrumento que se encuentra a continuación:

SELECT [ literal | column_value ]

INTO local_variable

FROM [ table_name | aliastable_name ]

WHERE comparison_instructions;

Este código asignará el carácter literal a una variable local:

set serveroutput on
declare
  v_hello varchar2(32767);
begin
  select 'Hello world!'
  into v_hello
  from dual;

  dbms_output.put_line(v_hello);
end;
/

Cuando el bloque de código se ejecuta en SQL * Plus, se imprime la siguiente salida en la consola:

Hello world!

La asignación "de derecha a izquierda" no es un estándar , pero es una característica valiosa para los programadores y usuarios. Generalmente se usa cuando el programador está usando cursores en PL / SQL: esta técnica se usa cuando queremos devolver un único valor escalar o un conjunto de columnas en la línea de cursor del cursor SQL.

Otras lecturas:



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow