STRSQL
Démarrer une session SQL
En bref
La commande STRSQL (Démarrer une session SQL) démarre le programme SQL interactif.
STRSQL se lit STR
(Démarrer) + SQL.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
STRSQL
Paramètres
-
COMMITContrôle de validation -
NAMINGConvention d'appellation -
PROCESSTraitement des instructions -
LIBOPTListe de bibliothèques -
LISTTYPEType de liste -
REFRESHRéaffichage des données -
ALWCPYDTACopie des données admise -
DATFMTFormat de date -
DATSEPSéparateur de date -
TIMFMTFormat d'heure -
TIMSEPSéparateur d'heure -
DECPNTSymbole décimal -
SRTSEQSéquence de tri -
LANGIDIdentificateur de langue -
PGMLNGLangage de programmation -
SQLSTRDLMDélimiteur de chaîne SQL
Astuce : dans une session 5250, tapez STRSQL puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QSQL)
Où s'exécute : Environnements interactifs (*INTERACT *IPGM *IREXX *EXEC)
Compatible multitâche : Non
La commande STRSQL (Démarrer une session SQL) démarre le programme SQL interactif. Ce programme démarre l'entrée d'instructions SQL en affichant immédiatement l'écran Entrée d'instructions SQL. Cet écran permet de créer, d'éditer, d'entrer et d'exécuter une instruction SQL dans un environnement interactif. Tout message généré au cours de l'exécution du programme sera affiché sur cet écran.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| COMMIT | Contrôle de validation | *NONE, *CHG, *CS, *ALL, *RR, *NC, *UR, *RS | Facultatif, positionnel 1 |
| NAMING | Convention d'appellation | *SYS, *SQL | Facultatif, positionnel 2 |
| PROCESS | Traitement des instructions | *RUN, *VLD, *SYN | Facultatif, positionnel 3 |
| LIBOPT | Liste de bibliothèques | Nom, *LIBL, *USRLIBL, *ALLUSR, *ALL, *CURLIB | Facultatif, positionnel 4 |
| LISTTYPE | Type de liste | *ALL, *SQL | Facultatif, positionnel 5 |
| REFRESH | Réaffichage des données | *ALWAYS, *FORWARD | Facultatif, positionnel 6 |
| ALWCPYDTA | Copie des données admise | *YES, *OPTIMIZE, *NO | Facultatif |
| DATFMT | Format de date | *JOB, *USA, *ISO, *EUR, *JIS, *MDY, *DMY, *YMD, *JUL | Facultatif |
| DATSEP | Séparateur de date | *JOB, '/', '.', ',', '-', ' ', *BLANK | Facultatif |
| TIMFMT | Format d'heure | *HMS, *USA, *ISO, *EUR, *JIS | Facultatif |
| TIMSEP | Séparateur d'heure | *JOB, ':', '.', ',', ' ', *BLANK | Facultatif |
| DECPNT | Symbole décimal | *JOB, *PERIOD, *COMMA, *SYSVAL | Facultatif |
| SRTSEQ | Séquence de tri | Valeurs uniques: *HEX, *JOB, *JOBRUN, *LANGIDUNQ, *LANGIDSHR Autres valeurs: Nom d'objet qualifié |
Facultatif |
| Qualificatif 1: Séquence de tri | Nom | ||
| Qualificatif 2: Bibliothèque | Nom, *LIBL, *CURLIB | ||
| LANGID | Identificateur de langue | Valeur caractère, *JOB, *JOBRUN | Facultatif |
| PGMLNG | Langage de programmation | *NONE, *C, *CBL, *PLI, *RPG, *FTN | Facultatif |
| SQLSTRDLM | Délimiteur de chaîne SQL | *QUOTESQL, *APOSTSQL | Facultatif |
Contrôle de validation (COMMIT)
Indique si les instructions SQL sont exécutées sous contrôle de validation.
- *NONE ou *NC
- Le contrôle de validation n'est pas utilisé. Les modifications invalidées effectuées dans d'autres travaux peuvent être visualisées. Si l'instruction SQL DROP SCHEMA est incluse dans le programme, vous devez indiquer *NONE ou *NC.
- *CHG ou *UR
- Indique les objets désignés par les instructions SQL ALTER, CALL, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME et REVOKE ; les lignes mises à jour, supprimées ou insérées sont verrouillées jusqu'à la fin de l'unité d'oeuvre (transaction). Les modifications invalidées effectuées dans d'autres travaux peuvent être visualisées.
- *CS
- Indique les objets désignés par les instructions SQL ALTER, CALL, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME et REVOKE ; les lignes mises à jour, supprimées ou insérées sont verrouillées jusqu'à la fin de l'unité d'oeuvre (transaction). Une ligne sélectionnée mais non mise à jour est verrouillée jusqu'à la sélection de la ligne suivante. Vous ne pouvez pas visualiser les modifications invalidées effectuées dans d'autres travaux.
- *ALL ou *RS
- Indique les objets désignés par les instructions SQL ALTER, CALL, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME et REVOKE ; les lignes sélectionnées, mises à jour, supprimées ou insérées sont verrouillées jusqu'à la fin de l'unité d'oeuvre (transaction). Vous ne pouvez pas visualiser les modifications invalidées effectuées dans d'autres travaux.
- *RR
- Indique les objets désignés par les instructions SQL ALTER, CALL, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME et REVOKE ; les lignes sélectionnées, mises à jour, supprimées ou insérées sont verrouillées jusqu'à la fin de l'unité d'oeuvre (transaction). Vous ne pouvez pas visualiser les modifications invalidées effectuées dans d'autres travaux. Toutes les tables désignées par les instructions SELECT, UPDATE, DELETE et INSERT sont exclusivement verrouillées jusqu'à la fin de l'unité d'oeuvre (transaction).
Convention d'appellation (NAMING)
Indique la convention d'appellation utilisée pour identifier les objets dans les instructions SQL.
- *SYS
- La convention d'appellation du système est utilisée (nom-bibliothèque/nom-fichier).
- *SQL
- La convention d'appellation de SQL est utilisée (nom-schéma.nom-table).
Traitement des instructions (PROCESS)
Spécifie le type de traitement auquel sont soumises les instructions.
- *RUN
- Les instructions sont soumises à une vérification de la syntaxe et de la validité, puis sont exécutées.
- *VLD
- Les instructions sont soumises à une vérification de la syntaxe et de la validité, mais ne sont pas exécutées.
- *SYN
- Seule la syntaxe des instructions est vérifiée.
Liste de bibliothèques (LIBOPT)
Indique la liste de bibliothèques qui apparaît lorsque vous demandez une liste à partir de l'écran Entrée d'instructions SQL (F4, F16, F17, F18). Si vous ne disposez pas du droit *EXECUTE sur une bibliothèque donnée, cette bibliothèque n'apparaîtra pas dans la liste.
- *LIBL
- La recherche est effectuée dans toutes les bibliothèques de la liste des bibliothèques du travail en cours, jusqu'à ce qu'une valeur correspondant à la demande soit trouvée.
- *CURLIB
- La bibliothèque en cours du travail apparaît.
- *USRLIBL
- Seules les bibliothèques qui figurent dans la partie utilisateur de la liste des bibliothèques du travail apparaissent.
- *ALL
- Toutes les bibliothèques du système, y compris QSYS, apparaissent.
- *ALLUSR
- La recherche est effectuée dans toutes les bibliothèques utilisateur. La recherche est également effectuée dans toutes les bibliothèques dont le nom ne commence pas par la lettre Q, à l'exception de :
#CGULIB #DSULIB #SEULIB #COBLIB #RPGLIB #DFULIB #SDALIB
Bien que fournies par IBM, les bibliothèques Qxxx suivantes contiennent habituellement des données utilisateur susceptibles d'être modifiées fréquemment. C'est pourquoi elles sont considérées comme "bibliothèques utilisateur" et font également l'objet de la recherche :
QDSNX QRCL QUSRSYS QGPL QS36F QUSRVxRxMx QGPL38 QUSER38 QPFRDATA QUSRINFSKR
Remarque :Un nom de bibliothèque différent, au format QUSRVxRxMx, peut être créé par l'utilisateur pour chaque édition. Vx est la version, Rx l'édition et Mx le niveau de modification de la bibliothèque.
- nom
- Indiquez le nom de la bibliothèque à afficher.
Type de liste (LISTTYPE)
Indique les types d'objets qui apparaissent lorsque vous demandez une liste à partir de l'écran ENTREE D'INSTRUCTIONS SQL (F16, F17 et F18) ou à partir d'une invite (F4).
- *ALL
- Tous les objets apparaissent.
- *SQL
- Seuls les objets SQL apparaissent.
Réaffichage des données (REFRESH)
Indique à quel moment l'affichage des données de sortie choisies est réaffiché. Ce paramètre ne s'applique pas aux instructions SQL SELECT qui requièrent la création d'un résultat provisoire.
- *ALWAYS
- Les données sont toujours réaffichées. Vous ne pouvez pas indiquer *ALWAYS pour ce paramètre et *OPTIMIZE pour le paramètre ALWCPYDTA (invite Copie des données admise).
- *FORWARD
- Les données ne sont réaffichées que si l'utilisateur fait défiler pour la première fois les données vers l'avant jusqu'à la fin. Par la suite, elles ne seront plus réaffichées.
Copie des données admise (ALWCPYDTA)
Indique si une copie des données peut être utilisée lors de l'exécution de l'instruction SELECT.
- *YES
- Une copie des données peut être utilisée uniquement pour lancer une instruction SELECT si cela est nécessaire.
- *OPTIMIZE
- Le système détermine s'il va utiliser les données extraites directement de la base de données ou une copie de ces données. La méthode la plus efficace sera choisie.
Cette valeur permet de réduire le temps nécessaire à la requête totale. Etant donné que la copie des données doit être effectuée avant le renvoi de la première ligne de la table résultat, la durée d'extraction de la première ligne peut être augmentée.
- *NO
- Une copie des données n'est pas autorisée. Si les clauses de l'instruction SELECT nécessitent une copie des données, un message d'erreur est envoyé. Si l'instruction SELECT aboutit, c'est que les données en cours ont été utilisées.
Format de date (DATFMT)
Indique le format utilisé pour les colonnes résultat réservées aux dates. Toutes les zones date de sortie sont renvoyées avec le format que vous avez indiqué. Pour les chaînes date en entrée, la valeur indiquée est utilisée pour vérifier si le format de la date est correct.
Remarque :Pour les chaînes date en entrée, les formats *USA, *ISO, *EUR et *JIS sont toujours corrects.
Si vous vous connectez à une base de données relationnelle qui se trouve sur un système autre qu'un IBM i, vous devez utiliser le format *USA, *ISO, *EUR ou *JIS.
- *JOB
- Le format de date utilisé est celui défini pour le travail lors de la précompilation ou lors de la création d'une nouvelle session SQL interactive.
Lancez la commande DSPJOB (Afficher l'état d'un travail) pour connaître le format de date en cours pour le travail.
- *USA
- Le format de date US mm/jj/aaaa est utilisé.
- *ISO
- Le format de date ISO (International Organization for Standardization) aaaa-mm-jj est utilisé.
- *EUR
- Le format de date européen jj.mm.aaaa est utilisé.
- *JIS
- Le format de date JIS (Japanese Industrial Standard) aaaa-mm-jj est utilisé.
- *MDY
- Le format de date mm/jj/aa est utilisé.
- *DMY
- Le format de date jj/mm/aa est utilisé.
- *YMD
- Le format de date aa/mm/jj est utilisé.
- *JUL
- Le format de date aa/jjj (calendrier Julien) est utilisé.
Séparateur de date (DATSEP)
Indique le séparateur à utiliser pour les colonnes résultat réservées aux dates.
Remarque :Ce paramètre est utilisé uniquement lorsque *JOB, *MDY, *DMY, *YMD ou *JUL sont indiqués pour le paramètre DATFMT (Format de date).
- *JOB
- Le séparateur de date est celui défini pour le travail lors de la précompilation, lors de la création d'une nouvelle session interactive SQL ou lors de l'exécution de la commande RUNSQLSTM (Exécuter l'instruction SQL).
Lancez la commande DSPJOB (Afficher l'état d'un travail) pour connaître le séparateur de date en cours pour le travail.
- '/'
- Une barre oblique est utilisée comme séparateur de date.
- '.'
- Un point est utilisé comme séparateur de date.
- '-'
- Un tiret est utilisé comme séparateur de date.
- ','
- Une virgule est utilisée comme séparateur de date.
- ' ' ou *BLANK
- Un blanc, ' ', est utilisé comme séparateur de date.
Format d'heure (TIMFMT)
Indique le format utilisé pour les colonnes résultat d'heure. Toutes les zones heure de sortie sont renvoyées avec le format que vous avez indiqué. Pour les chaînes heure en entrée, la valeur indiquée est utilisée pour vérifier si le format de l'heure est correct.
Remarque :Les chaînes de type heure en entrée utilisant les formats *USA, *ISO, *EUR et *JIS sont toujours correctes.
Si vous vous connectez à une base de données relationnelle qui se trouve sur un système autre qu'un IBM i, vous devez utiliser le format *USA, *ISO, *EUR, *JIS ou *HMS avec un signe point ou deux-points comme séparateur d'heure.
- *HMS
- Le format d'heure hh:mm:ss est utilisé.
- *USA
- Le format d'heure américain hh:mmxx est utilisé, xx correspondant à AM ou PM.
- *ISO
- Le format d'heure ISO (International Organization for Standardization) hh.mm.ss est utilisé.
- *EUR
- Le format d'heure européen hh.mm.ss est utilisé.
- *JIS
- Le format d'heure JIS (Japanese Industrial Standard) hh:mm:ss est utilisé.
Séparateur d'heure (TIMSEP)
Indique le séparateur utilisé pour les colonnes résultat réservées aux heures.
Remarque :Ce paramètre est utilisé uniquement lorsque *HMS est indiqué pour le paramètre TIMFMT (Format d'heure).
- *JOB
- Le séparateur d'heure utilisé est celui défini pour le travail lors de la précompilation, lors de la création d'une nouvelle session SQL interactive ou lors de l'exécution de RUNSQLSTM.
Lancez la commande DSPJOB (Afficher l'état d'un travail) pour connaître le séparateur de date en cours pour le travail.
- ':'
- Un signe deux-points est utilisé comme séparateur d'heure.
- '.'
- Un point est utilisé comme séparateur d'heure.
- ','
- Une virgule est utilisée comme séparateur d'heure.
- ' ' ou *BLANK
- Un blanc, ' ', est utilisé comme séparateur d'heure.
Symbole décimal (DECMPT)
Indique le symbole décimal à utiliser pour les constantes numériques dans les instructions SQL. Cette valeur est également utilisée comme symbole décimal pour le transtypage entre caractères et valeurs numériques.
- *JOB
- La représentation du séparateur décimal prend la valeur utilisée par le travail qui exécute l'instruction.
- *SYSVAL
- La valeur système QDECFMT est utilisée comme symbole décimal.
- *PERIOD
- Le symbole décimal est représenté par un point.
- *COMMA
- Le symbole décimal est représenté par une virgule.
Séquence de tri (SRTSEQ)
Indique la table de séquence de tri à utiliser dans les comparaisons de chaînes des instructions SQL sur l'écran Entrée d'instructions SQL.
Valeurs uniques
- *JOB
- La valeur SRTSEQ est extraite quand l'utilisateur lance la session SQL interactive.
- *JOBRUN
- La valeur SRTSEQ du travail est extraite chaque fois que l'utilisateur lance une session SQL interactive.
- *LANGIDUNQ
- Une table de tri à poids unique est utilisée.
- *LANGIDSHR
- Une table de tri à poids partagé est utilisée.
- *HEX
- Aucune table de tri n'est utilisée ; les valeurs hexadécimales des caractères servent à définir la séquence de classement.
Qualificatif 1 : Séquence de tri
- nom
- Indique le nom de la table de tri à utiliser en session SQL interactive.
Qualificatif 2 : Bibliothèque
- *LIBL
- La recherche est effectuée dans toutes les bibliothèques de la liste des bibliothèques du travail en cours, jusqu'à ce qu'une valeur correspondant à la demande soit trouvée.
- *CURLIB
- La recherche s'effectue sur la bibliothèque en cours du travail. Si aucune bibliothèque n'est indiquée comme étant la bibliothèque en cours du travail, la bibliothèque QGPL est utilisée.
- nom
- Indiquez le nom de la bibliothèque sur laquelle doit s'effectuer la recherche.
Identificateur de langue (LANGID)
Indique l'identificateur de langue à utiliser quand SRTSEQ(*LANGIDUNQ) ou SRTSEQ(*LANGIDSHR) sont spécifiés.
- *JOB
- La valeur LANGID indiquée pour le travail est utilisée quand l'utilisateur lance une nouvelle session interactive SQL.
- *JOBRUN
- La valeur LANGID du travail est extraite chaque fois que l'utilisateur lance la session interactive SQL.
- ID-langue
- Indique l'identificateur de langue à utiliser.
Langage de programmation (PGMLNG)
Indique les règles de syntaxe du langage de programmation à utiliser. Pour utiliser ce paramètre, vous devez indiquer la valeur *SYN au paramètre PROCESS (invite Traitement des instructions).
- *NONE
- Vous n'utilisez pas les règles de vérification syntaxique d'un langage particulier.
- *C
- Vous utilisez les règles de vérification syntaxique du langage C.
- *CBL
- Vous utilisez les règles de vérification syntaxique du langage COBOL.
- *PLI
- Vous utilisez les règles de vérification syntaxique du langage PL/I.
- *RPG
- Vous utilisez les règles de vérification syntaxique du langage RPG.
- *FTN
- Vous utilisez les règles de vérification syntaxique du langage FORTRAN.
Délimiteur de chaîne SQL (SQLSTRDLM)
Indique le délimiteur de chaîne SQL si *CBL est indiqué pour le paramètre PGMLNG (invite Langage de programmation).
- *QUOTESQL
- Le délimiteur de chaîne est le guillemet (").
- *APOSTSQL
- Le délimiteur de chaîne est l'apostrophe (').
Exemples
STRSQL
Cette commande lance le programme SQL interactif. Ce programme démarre l'entrée d'instructions SQL en affichant immédiatement l'écran Entrée d'instructions SQL. Cet écran permet de créer, d'éditer, d'entrer et d'exécuter une instruction SQL dans un environnement interactif.
Messages d'erreur
Messages *ESCAPE
- CPF9801
- Objet &2 non trouvé dans la bibliothèque &3.
- CPF9802
- Non autorisé à l'objet &2 de &3.
- CPF9810
- Bibliothèque &1 non trouvée.
- CPF9820
- Non autorisé à utiliser la bibliothèque &1.
- CPF9822
- Non autorisé au fichier &1 de &2.
- CPF9830
- Allocation de la bibliothèque &1 impossible.
- SQL0113
- Le nom &1 n'est pas admis.
- SQL6141
- Utilisation de SQL interactif impossible actuellement.
- SQL6145
- Une session SQL interactive a dépassé la limite du système.
- SQL6332
- La liste d'autorisation &1 n'existe pas.
- SQL6342
- La séquence de tri &1 est incorrecte.
- SQL6343
- L'identificateur de langue &1 est incorrect.
- SQL9006
- DB2 Query Mgr and SQL DevKit ne sont pas au même niveau que le système d'exploitation.
- SQL9012
- IBM DB2 Query Manager and SQL Development Kit for i non disponible.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.