Blocs PL/SQL : Procédure, fonction, bloc anonyme

SyntaxeProcédure

1
CREATE OR REPLACE PROCEDURE nom_proc
2
IS
3
 ...
4
BEGIN
5
 ...
6
[EXCEPTION]
7
 ...
8
END ;

ExempleProcédure

1
CREATE OR REPLACE PROCEDURE pHello (who VARCHAR2)
2
IS
3
BEGIN
4
  DBMS_OUTPUT.PUT_LINE('Hello ' || who);
5
END;
6
/

SyntaxeFonction

1
CREATE OR REPLACE FUNCTION nom_func
2
 RETURN type_retourné
3
IS
4
 ...
5
BEGIN
6
 ...
7
 RETURN valeur;
8
[EXCEPTION]
9
 ...
10
END ;

ExempleFonction

1
CREATE OR REPLACE FUNCTION fDateDuJour RETURN date
2
IS
3
  vDate date;
4
BEGIN
5
  SELECT SYSDATE INTO vDate FROM DUAL;
6
  RETURN vDate;
7
END;
8
/

Attention

Le type de retourné par une fonction ne doit pas spécifier de taille :

  • RETURN varchar

  • et non RETURN varchar(10)

http://docs.oracle.com/cd/B13789_01/server.101/b10759/statements_5009.htm

SyntaxeAnonyme

1
[DECLARE]
2
 ...
3
BEGIN
4
 ...
5
[EXCEPTION]
6
 ...
7
END ;

ExempleScript anonyme

1
SET SERVEROUTPUT ON;
2
BEGIN
3
  pHello('World');
4
  DBMS_OUTPUT.PUT_LINE(fDateDuJour);
5
END;
6
/