Recherche…


Modèle d'affectation en PL / SQL

Tous les langages de programmation nous permettent d'affecter des valeurs aux variables. Habituellement, une valeur est affectée à la variable, située à gauche. Le prototype de l'ensemble des opérations d'affectation dans un langage de programmation contemporain ressemble à ceci:

left_operand assignment_operand right_operand instructions_of_stop

Cela affectera un opérande de droite à l'opérande gauche. En PL / SQL, cette opération ressemble à ceci:

left_operand := right_operand;

L'opérande gauche doit toujours être une variable . Un opérande droit peut être une valeur, une variable ou une fonction:

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

Lorsque le bloc de code est exécuté dans SQL * Plus, la sortie suivante est imprimée dans la console:

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

Il y a une fonctionnalité en PL / SQL qui nous permet d'attribuer "de droite à gauche". Il est possible de le faire dans l'instruction SELECT INTO. Prototype de cet instrument, vous trouverez ci-dessous:

SELECT [ literal | column_value ]

INTO local_variable

FROM [ table_name | aliastable_name ]

WHERE comparison_instructions;

Ce code affectera un caractère littéral à une variable 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;
/

Lorsque le bloc de code est exécuté dans SQL * Plus, la sortie suivante est imprimée dans la console:

Hello world!

L'attribution "de droite à gauche" n'est pas un standard , mais c'est une fonctionnalité précieuse pour les programmeurs et les utilisateurs. Généralement, il est utilisé lorsque le programmeur utilise des curseurs dans PL / SQL - cette technique est utilisée lorsque nous voulons renvoyer une seule valeur scalaire ou un ensemble de colonnes dans une ligne de curseur à partir du curseur SQL.

Lectures complémentaires:



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow