Comment extraire une donnée d'une table avec SELECT INTO en PL-SQL ?
Cette requête SELECT INTO doit renvoyer impérativement 1 seul enregistrement, sinon PL / SQL déclenche l'exception prédéfinie
TOO_MANY_ROWS et si aucune ligne n'est retournée, PL / SQL soulève NO_DATA_FOUND.
Toute donnée extraite d'une table est réceptionnée dans une variable.
SET SERVEROUTPUT ON
DECLARE
v_ename scott.emp.ename%type;
v_job scott.emp.job%type;
BEGIN
SELECT ename, job
INTO v_ename, v_job
FROM scott.emp
WHERE empno = 7839;
dbms_output.put_line('Name = '||v_ename || ' Job = ' || v_job);
END; /
|
Dans la partie DECLARE, nous déclarons les deux variables v_ename et v_job référencées à une colonne de table de la base et qui receptionnerons les données. Ici colonne ENAME et
JOB de la table EMP du schéma SCOTT.
L'attribut %TYPE spécifie le type de la colonne de la table.
SQL> SET SERVEROUTPUT ON SQL> DECLARE 2 v_ename scott.emp.ename%type; 3 v_job scott.emp.job%type; 4 BEGIN 5 SELECT ename, job 6 INTO v_ename, v_job 7 FROM scott.emp 8 WHERE empno = 7839; 9 dbms_output.put_line('Name = '||v_ename || ' Job = ' || v_job); 10 END; 11 / Name = KING Job = PRESIDENT PL/SQL procedure successfully completed. |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
| • Oracle PL-SQL Structure d'un BLOC |