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

SyntaxeProcédure

CTRL+C pour copier, CTRL+V pour coller
1
CREATE OR REPLACE PROCEDURE nom_proc
2
IS
3
 ...
4
BEGIN
5
 ...
6
[EXCEPTION]
7
 ...
8
END ;
CREATE OR REPLACE PROCEDURE nom_proc
IS
 ...
BEGIN
 ...
[EXCEPTION]
 ...
END ;

ExempleProcédure

CTRL+C pour copier, CTRL+V pour coller
1
CREATE OR REPLACE PROCEDURE pHello (who VARCHAR2)
2
IS
3
BEGIN
4
  DBMS_OUTPUT.PUT_LINE('Hello ' || who);
5
END;
6
/
CREATE OR REPLACE PROCEDURE pHello (who VARCHAR2)
IS
BEGIN
  DBMS_OUTPUT.PUT_LINE('Hello ' || who);
END;
/

SyntaxeFonction

CTRL+C pour copier, CTRL+V pour coller
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 ;
CREATE OR REPLACE FUNCTION nom_func
 RETURN type_retourné
IS
 ...
BEGIN
 ...
 RETURN valeur;
[EXCEPTION]
 ...
END ;

ExempleFonction

CTRL+C pour copier, CTRL+V pour coller
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
/
CREATE OR REPLACE FUNCTION fDateDuJour RETURN date
IS
  vDate date;
BEGIN
  SELECT SYSDATE INTO vDate FROM DUAL;
  RETURN vDate;
END;
/

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

CTRL+C pour copier, CTRL+V pour coller
1
[DECLARE]
2
 ...
3
BEGIN
4
 ...
5
[EXCEPTION]
6
 ...
7
END ;
[DECLARE]
 ...
BEGIN
 ...
[EXCEPTION]
 ...
END ;

ExempleScript anonyme

CTRL+C pour copier, CTRL+V pour coller
1
SET SERVEROUTPUT ON;
2
BEGIN
3
  pHello('World');
4
  DBMS_OUTPUT.PUT_LINE(fDateDuJour);
5
END;
6
/
SET SERVEROUTPUT ON;
BEGIN
  pHello('World');
  DBMS_OUTPUT.PUT_LINE(fDateDuJour);
END;
/