Bonjour,


N'ayant pas Oracle à disposition, je souhaiterais vous demander confirmation concernant le fait si une function ou procedure Oracle est considérée comme un bloc transactionnel.

Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
CREATE FUNCTION ma_fonction_toto()
RETURN NUMBER
AS
BEGIN
 
    INSERT INTO ma_table values(1);
    RETURN 1 + 1 + 1;
 
END;
 
CREATE FUNCTION ma_fonction_titi()
RETURN NUMBER
AS
    val number;
BEGIN   
    val := ma_fonction_toto(); 
    ROLLBACK;
    RETURN val;
END;
Je souhaiterais donc savoir si par exemple, en exécutant la ligne "val := ma_fonction_toto();" dans ma_fonction_titi j'ai effectué une transaction (transaction imbriquée) ?
Est-ce que mon INSERT dans ma_fonction_toto a bien eu le ROLLBACK, ou bien y a-t-il eu un COMMIT au niveau du END dans ma_fonction_toto ?


Merci