Salut,
je vais essayer d'expliquer ma problematique de manière simple :
Je dois créer une vue qui va permettre d'accéder à des champs provenant de synonymes issues d'autre schéma.
J'ai procédé de la façon suivante :
1) création d'un type qui contient la structure de la table table_obj_type
2) création d'un type qui table de table_obj_type
3) création d'une fonction f_alim d'alimentation de la table créée en 2)
4) création d'une vue qui fait un select * from table(f_alim)
Jusque là tout va bien. Mais c'est là que ca se complique un peu. en effet, l'acces aux synonymes n'est possible qu'après avoir écrit dans une table temporaire qui ouvre l'accès pendant un laps de temps. Pour ce faire, j'ai une fonction f_available que je dois appeler.
a) j'ai essayer de l'appeller depuis ma fonction f_alim, et là j'ai l'erreur ORA-14552 . cannot perform a DDL, commit or rollback inside a query or DML
En effet, la fonction allant faire une mise à jour, elle fait un commit implicite.
b)J'ai essayé également autonomous_transaction, mais apapremment l'appel de la fonction d'acces n'est pas commité du tout et je ne vois pas mes données.
c) enfin, j'ai essayé de créer une procédure encapsulant f_available et de l'appeller depuis ma fonction f_alim. Je crois qu'il est impossible d'appeller une procedure depuis une fonction.
Bref, je sèche un peu. Est-ce que quelqu'un aurait une petite idée pour que je puisse m'en sortir ?
Merci d'avance
Rikko
PS: lorsque j'execute f_available puis ma fonction, aucun problème, mais je voudrais avoir un seul appel, car j'ai beaucoup de synonymes à gérer
Partager