PLSQL 中的賦值模型

所有程式語言都允許我們為變數賦值。通常,將值分配給站在左側的變數。任何當代程式語言中的整體賦值操作的原型如下所示:

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 遊標返回一行遊標中的單個標量值或一組列時,使用此技術。

進一步閱讀: