Bonjours à tous,
Je découvre petit à petit DB2 sur AS400 et je m'essaye aux fonctions utilisateurs (UDF).
Mais j'ai bien sur un premier "gros" problème:
Nous travaillons avec 2 bibliothèques: une de développement et une de production.
En phase de développement, on écrit nos requetes ainsi: "SELECT * FROM LIBDEV/MYTABLE..." et bien sur lorsque l'on bascule en Prod, il faut changer partout le nom de la bibliothèque.
Je trouve cela un peu contraignant et en créant mes premières fonctions, je me dis que je pourrais passer un paramètre à la fonction qui indiquerait quelle bibliothèque utiliser.
Voici ce que j'aimerais faire:
L'idée c'est que dans la requete "SELECT * FROM BIBLIO/MYTABLE", BIBLIO soit remplacé par 'LIBPROD' ou 'LIBDEV' suivant le paramètre transmis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE FUNCTION MYBIB/MYFONCTION ( BIBLIO CHAR(10) DEFAULT 'LIBDEV' ) BEGIN CASE WHEN BIBLIO = 'P' THEN SET BIBLIO = 'LIBPROD' ELSE SET BIBLIO ='LIBDEV' END CASE; SELECT * FROM BIBLIO/MYTABLE END
Mais cela ne marche pas.
Avant j'ai essayé d'ajouter la commande "USE BIBLIO", mais cela n'existe pas en DB2.
Est ce que vous auriez des idées à me proposer pour régler ce problème. Peut être que j'utilise mal l'envirronement AS400<>DB2 et qu'il faut revoir tout notre organisation de bibliothèque.
Merci pour votre aide et vos retours d'expérience.
Marc
Partager