Поиск…


Модель присвоений в PL / SQL

Все языки программирования позволяют присваивать значения переменным. Обычно значение присваивается переменной, стоящей с левой стороны. Прототип операций общего назначения в любом современном языке программирования выглядит следующим образом:

left_operand assignment_operand right_operand instructions_of_stop

Это назначит правый операнд левому операнду. В PL / SQL эта операция выглядит так:

left_operand := right_operand;

Левый операнд всегда должен быть переменной . Правильный операнд может быть значением, переменной или функцией:

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;
/

Когда блок кода выполняется в SQL * Plus, на консоли выводится следующий вывод:

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

В PL / SQL есть функция, которая позволяет нам назначать «справа налево». Это можно сделать в инструкции SELECT INTO. Прототип этого узла вы найдете ниже:

SELECT [ literal | column_value ]

INTO local_variable

FROM [ table_name | aliastable_name ]

WHERE comparison_instructions;

Этот код присваивает символьный литерал локальной переменной:

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

  dbms_output.put_line(v_hello);
end;
/

Когда блок кода выполняется в SQL * Plus, на консоли выводится следующий вывод:

Hello world!

Назначение «справа налево» не является стандартом , но это ценная функция для программистов и пользователей. Обычно он используется, когда программист использует курсоры в PL / SQL - этот метод используется, когда мы хотим вернуть одно скалярное значение или набор столбцов в одной строке курсора из курсора SQL.

Дальнейшее чтение:



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow