Ricerca…


Modello di assegnazioni in PL / SQL

Tutti i linguaggi di programmazione ci consentono di assegnare valori alle variabili. Di solito, un valore è assegnato alla variabile, in piedi sul lato sinistro. Il prototipo delle operazioni di assegnazione complessive in qualsiasi linguaggio di programmazione contemporaneo assomiglia a questo:

left_operand assignment_operand right_operand instructions_of_stop

Questo assegnerà l'operando destro all'operando sinistro. In PL / SQL questa operazione ha il seguente aspetto:

left_operand := right_operand;

L'operando sinistro deve essere sempre una variabile . L'operando destro può essere valore, variabile o funzione:

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

Quando il blocco di codice viene eseguito in SQL * Plus, il seguente output viene stampato nella console:

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

C'è una funzionalità in PL / SQL che ci consente di assegnare "da destra a sinistra". È possibile farlo nell'istruzione SELECT INTO. Prototipo di questa istruzione che troverai di seguito:

SELECT [ literal | column_value ]

INTO local_variable

FROM [ table_name | aliastable_name ]

WHERE comparison_instructions;

Questo codice assegnerà caratteri letterali a una variabile locale:

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

  dbms_output.put_line(v_hello);
end;
/

Quando il blocco di codice viene eseguito in SQL * Plus, il seguente output viene stampato nella console:

Hello world!

L'assegnazione "da destra a sinistra" non è uno standard , ma è una funzionalità preziosa per programmatori e utenti. Generalmente viene utilizzato quando il programmatore utilizza i cursori in PL / SQL: questa tecnica viene utilizzata quando si desidera restituire un singolo valore scalare o un insieme di colonne nella riga di cursore dal cursore SQL.

Ulteriori letture:



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow