Easi Blog

Utilisation de *SYS ou *SQL dans la configuration JDBC

Rédigé par Rudi van Helvoirt | Jul 2, 2021 9:09:37 AM

Comme toujours, les détails sont importants lorsque vous utilisez des scripts Run SQL. Alors, comment faut-il faire pour commencer ?

1) Lorsque vous utilisez Run SQL Scripts (RSS) à partir de IBM i Access Client Solutions (ACS), le paramètre par défaut actuel pour « Naming convention » est SQL(*SQL). Ce paramètre se trouve dans le menu RSS « Connection » => « Connected » - <System>(<Database>) => Edit JDBC Configuration - Default => Format Tab.

2) En plus de « SQL(*SQL) », une autre option est disponible, la valeur « System(*SYS) ». L'impact de ce changement ne se limite pas à l'utilisation de « / » au lieu de « . » comme vous pouvez le penser. Cela implique bien plus. Permettez-moi d'en faire la démonstration en exécutant quelques instructions SQL avec ces deux valeurs pour la convention d’appellation.
 
3) Commençons par « SQL(*SQL) », après tout c'est le paramètre par défaut. Avant d'exécuter une instruction select, allez dans le menu RSS « Connection » => « Connected - <System>(<Database>) => Edit JDBC Configuration - Default => System Tab ». Entrez les valeurs comme indiqué ci-dessous et appuyez sur le bouton « Save » :


4) Veuillez noter qu'au lieu d'utiliser une virgule entre les valeurs, vous pouvez également utiliser un espace.

5) Exécutez maintenant cette instruction SQL : « select current path as path from sysibm.sysdummy1 ». Le résultat montrera que « QIWS » et « SYSTOOLS » se trouvent maintenant dans votre chemin.

6) Lorsque vous exécutez l'instruction SQL « select * from SERVICES_INFO », vous obtenez une erreur, avec le texte suivant : « SERVICES_INFO in QIWS type *FILE not found ». L'instruction « select current schema as schema from sysibm.sysdummy1 » vous indique que « QIWS » est le schéma actuel. Si vous exécutez cette instruction avant de modifier quoi que ce soit dans la configuration JDBC, le schéma actuel correspondra au profil utilisateur que vous avez utilisé lors de la connexion à RSS.

7) Le bouton avec le point d'interrogation bleu sur l'écran vous amènera à un document où tout est expliqué en détail.

8) Modifiez maintenant la « Naming Convention » comme indiqué ci-dessous et appuyez ensuite sur le bouton « Save » :

9) Répétez l'instruction : « select * from SERVICES_INFO ». Cette fois, vous obtiendrez un résultat. La différence est créée par le fait que, comme un effet secondaire de l'utilisation de la convention d’appellation *SYS, on cherche désormais dans la liste de la bibliothèque un fichier avec ce nom. En exécutant l'instruction « select current schema as schema from sysibm.sysdummy1 » vous verrez pourquoi.

10) Vous trouverez ci-dessous quelques instructions SQL utilisées ci-dessus et quelques instructions SQL supplémentaires pour examiner l'impact de vos changements.

11) Également en texte pour vous éviter de taper :

Que le chemin soit avec vous

sélectionner le chemin actuel comme chemin à partir de sysibm.sysdummy1 ;
sélectionner le schéma actuel comme schéma à partir de sysibm.sysdummy1 ;

-- Changer le chemin
Définir le chemin actuel ="QSYS","QSYS2","SYSPROC","SYSIBMADM","QGPL","QTEMP","usrsys","QIWS";

-- Veuillez noter que cela n’a pas d’impact sur le schéma actuel
Sélectionnez le schéma actuel comme schéma à partir de sysibm.sysdummy1;

-- Changer le schéma
Définir le schéma actuel QIWS ;
sélectionnez le schéma actuel comme schéma à partir de sysibm.sysdummy1;

-- Déclaration fonctionnant avec la convention d’appellation *SYS si QSYS2 est dans votre chemin
sélectionnez * de services_info ;

-- Déclaration avec ajout de Schéma nécessaire pour la convention d’appellation *SQL
sélectionnez * de QSYS2.services_info;

sélectionnez Example à partir de qsys2.services_info;

sélectionnez Example à partir de qsys2.services_info;

  • Veuillez noter que vous pouvez couper et coller un exemple directement dans RSS et l'exécuter.
  • Ci-dessous un exemple de couper et coller le premier champ du résultat de la commande précédente
  • Description : Un IPL aura-t-il un impact sur l'état de la PTF ?

SELECTIONNEZ PTF_IDENTIFIER, PTF_IPL_ACTION, A.*
A PARTIR DE QSYS2.PTF_INFO A
OU PTF_IPL_ACTION <> 'NONE';

Amusez-vous en apprenant l’impact *SQL ou *SYS comme convention d’appellation.