Szukaj…


Model przydziałów w języku PL / SQL

Wszystkie języki programowania pozwalają nam przypisywać wartości do zmiennych. Zwykle wartość jest przypisywana zmiennej, stojącej po lewej stronie. Prototyp ogólnych operacji przypisania w dowolnym współczesnym języku programowania wygląda następująco:

left_operand assignment_operand right_operand instructions_of_stop

To przypisze prawy operand do lewego operandu. W PL / SQL ta operacja wygląda następująco:

left_operand := right_operand;

Lewy operand musi zawsze być zmienną . Właściwym operandem może być wartość, zmienna lub funkcja:

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

Po wykonaniu bloku kodu w SQL * Plus w konsoli drukowane są następujące dane wyjściowe:

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

W PL / SQL jest funkcja, która pozwala nam przypisywać „od prawej do lewej”. Można to zrobić w instrukcji SELECT INTO. Prototyp tej instrukcji znajdziesz poniżej:

SELECT [ literal | column_value ]

INTO local_variable

FROM [ table_name | aliastable_name ]

WHERE comparison_instructions;

Ten kod przypisze literał znakowy do zmiennej lokalnej:

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

  dbms_output.put_line(v_hello);
end;
/

Po wykonaniu bloku kodu w SQL * Plus w konsoli drukowane są następujące dane wyjściowe:

Hello world!

Przypisanie „od prawej do lewej” nie jest standardem , ale jest cenną funkcją dla programistów i użytkowników. Zasadniczo jest używany, gdy programista używa kursorów w PL / SQL - ta technika jest używana, gdy chcemy zwrócić pojedynczą wartość skalarną lub zestaw kolumn w jednym wierszu kursora od kursora SQL.

Dalsza lektura:



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow