Aller au contenu

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

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.