Sök…


Uppdragsmodell i PL / SQL

Alla programmeringsspråk tillåter oss att tilldela värden till variabler. Vanligtvis tilldelas ett värde till variabeln, som står på vänster sida. Prototypen för de övergripande uppdragsoperationerna i alla samtida programmeringsspråk ser ut så här:

left_operand assignment_operand right_operand instructions_of_stop

Detta tilldelar höger operand till vänster operand. I PL / SQL ser denna operation så ut:

left_operand := right_operand;

Vänster operand måste alltid vara en variabel . Höger operand kan vara värde, variabel eller funktion:

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

När kodblocket körs i SQL * Plus skrivs följande utgång ut i konsolen:

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

Det finns en funktion i PL / SQL som tillåter oss att tilldela "från höger till vänster". Det är möjligt att göra i SELECT INTO-uttalande. Prototyp av den här instansen hittar du nedan:

SELECT [ literal | column_value ]

INTO local_variable

FROM [ table_name | aliastable_name ]

WHERE comparison_instructions;

Den här koden tilldelar en bokstavlig karaktär till en lokal variabel:

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

  dbms_output.put_line(v_hello);
end;
/

När kodblocket körs i SQL * Plus skrivs följande utgång ut i konsolen:

Hello world!

Tilldelning "från höger till vänster" är inte en standard , men det är värdefull funktion för programmerare och användare. Vanligtvis används det när programmerare använder markörer i PL / SQL - den här tekniken används, när vi vill returnera ett enda skalarvärde eller en uppsättning kolumner i en markörrad från SQL-markören.

Vidare läsning:



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow