Bonjour,
Oracle 9i
Je voudrais que la procedure_2 soit exécutée même si la procedure_1 n'est pas terminée mais sans utilisation de DBMS_JOB.Code:
1
2
3
4
5 Begin Procedure_1; Procedure_2; END;
Est-ce possible ?
Version imprimable
Bonjour,
Oracle 9i
Je voudrais que la procedure_2 soit exécutée même si la procedure_1 n'est pas terminée mais sans utilisation de DBMS_JOB.Code:
1
2
3
4
5 Begin Procedure_1; Procedure_2; END;
Est-ce possible ?
Bonjour,
et comme ça ?
Comme les blocs sont indépendants l'un peut planter sans gêner l'autre...Code:
1
2
3
4
5
6
7 Begin Procedure_1; END; Begin Procedure_2; END;
Bonjour,
je voudrais démarrer la procedure_2 sans attendre la fin de l'exécution de la procedure_1, ce qui n'est pas le cas dans la solution que tu proposes : la procedure_2 demarrera quand la procedure_1 sera terminée.
Le but est que les 2 procédures dialoguent entre elles via "pipe".
Le but est d'avoir un dialogue (via "pipe") entre un fmx et une procédure que cet fmx démarre.
J'utilisais dmbs_job mais il y a trop de jobs dans la queue ce qui fait que j'ai un timeout au niveau du dialogue via "pipe".
Une fonction pipelined?
Ca permet de se servir d'une fonction comme lors d'un select:
Mais ca devient a sens unique, et ca peut ne pas convenir.Code:
1
2
3
4
5
6
7 begin for i in (select * from table(ma_func1_pipelined)) loop ma_proc2(i.param1,i.param2); end loop; end; /
Bonjour,
Cela aurait pu convenir mais dans la fonction appelée il y a des insert, update, delete, commit, ... ce qui n'est pas accepté.
J'ai mis la fonction en PRAGMA AUTONOMOUS_TRANSACTION mais là, au moment du PIPE ROW, j'ai l'erreur :
ORA-06519: active autonomous transaction detected and rolled back
:cry:
Ca va, j'ai trouvé : je dois faire un COMMIT avant le PIPE ROW
En combinant la fonction PIPELINED et le DBMS_PIPE, je parviens à faire communiquer un fmb avec la fonction
merci à Rams7s de m'avoir mis sur la piste de la fonction pipelined
:ccool::ccool::ccool::ccool: