Help Contents |
Syntaxe des commandes iSQL*Plus |
Syntaxe
@{url[.ext] } [arg...]
Appelle et exécute le script indiqué par l'URL à partir d'un serveur Web.
Exemples
Vous pouvez exécuter un script nommé YEAREND indiqué par une URL, et transmettre des valeurs pour les variables référencées dans le script de la manière habituelle :
@HTTP://machine_name.domain:port/YEAREND.SQL VAL1 VAL2 @FTP://machine_name.domain:port/YEAREND.SQL VAL1 VAL2
Sur un serveur Web configuré pour traiter des rapports SQL, vous pouvez demander à SQL*Plus d'exécuter un script dynamique avec :
@HTTP://machine_name.domain:port/SCRIPTSERVER?ENDOFYEAR VAL1 VAL2
Syntaxe
@@{url | file_name[.ext] } [arg...]
Exécute un script. Cette commande est quasiment identique à la commande @ (arobase). Lors de l'exécution de scripts imbriqués, elle recherche les scripts imbriqués dans la même URL que le script d'appel.
Exemples
Soit le script suivant nommé PRINTRPT :
SELECT DEPARTMENT_ID, CITY FROM EMP_DETAILS_VIEW WHERE SALARY>12000; @EMPRPT.SQL @@ WKRPT.SQL
Supposons que le script PRINTRPT se trouve sur un serveur Web et que vous l'ayez lancé avec START HTTP://machine_name.domain:port/PRINTRPT. Lorsque le système atteint la commande @, il recherche le script nommé EMPRPT dans le répertoire de travail en cours et l'exécute. Lorsque PRINTRPT atteint la commande @@, le script nommé WKRPT est recherché dans la même url que PRINTRPT, HTTP://machine_name.domain:port/WKRPT.SQL et exécuté.
Syntaxe
/ (barre oblique)
Exécute la commande SQL exécutée le plus récemment ou le bloc PL/SQL stocké dans le tampon SQL.
Exemples
Saisissez le script SQL suivant :
SELECT CITY, COUNTRY_NAME FROM EMP_DETAILS_VIEW WHERE SALARY=12000;
Entrez une barre oblique (/) pour réexécuter la commande dans le tampon :
/
CITY COUNTRY_NAME ------------------------------ ---------------------------------------- Seattle United States of America Oxford United Kingdom Seattle United States of America |
Syntaxe
ACC[EPT] variable [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text|NOPR[OMPT]] [HIDE]
Lit une ligne d'entrée et la stocke dans une variable de substitution donnée.
Exemples
Pour afficher l'invite "Password: ", placer la réponse dans une variable CHAR nommée PSWD et supprimer l'affichage, entrez :
ACCEPT pswd CHAR PROMPT 'Password: ' HIDE
Pour afficher l'invite "Enter weekly salary: " et placer la réponse dans une variable NUMBER nommée SALARY avec la valeur par défaut 000.0, entrez :
ACCEPT salary NUMBER FORMAT '999.99' DEFAULT '000.0' - PROMPT 'Enter weekly salary: '
Pour afficher l'invite "Enter date hired: " et placer la réponse dans une variable DATE nommée HIRED, au format "dd/mm/yyyy", avec la valeur par défaut "01/01/2003", entrez :
ACCEPT hired DATE FORMAT 'dd/mm/yyyy' DEFAULT '01/01/2003'- PROMPT 'Enter date hired: '
Pour afficher l'invite "Enter employee lastname: " et placer la réponse dans une variable CHAR nommée LASTNAME, entrez :
ACCEPT lastname CHAR FORMAT 'A20' - PROMPT 'Enter employee lastname: '
Syntaxe
ARCHIVE LOG {LIST | STOP} | {START | NEXT | ALL | integer } [TO destination]
Lance ou arrête l'archivage automatique des fichiers de journalisation en ligne, archive manuellement (explicitement) les fichiers de journalisation indiqués, ou affiche des informations sur les fichiers de journalisation.
Exemples
Pour lancer le processus d'archivage et démarrer l'archivage automatique, la destination des archives étant celle indiquée dans LOG_ARCHIVE_DEST, entrez :
ARCHIVE LOG START
Pour arrêter l'archivage automatique, entrez :
ARCHIVE LOG STOP
Pour archiver à l'endroit indiqué le groupe de fichiers de journalisation dont le numéro de séquence est 1001, entrez :
ARCHIVE LOG 1001 '/vobs/oracle/dbs/arch'
'arch' est le préfixe du nom de fichier sur le périphérique de destination ; le reste du nom de fichier dépend du paramètre d'initialisation LOG_ARCHIVE_FORMAT, qui définit le format du nom des fichiers de journalisation archivés.
Syntaxe
ATTRIBUTE [type_name.attribute_name [option ...]]
où option représente l'une des clauses suivantes :
ALI[AS] alias
CLE[AR]
FOR[MAT] format
LIKE {type_name.attribute_name | alias}
ON | OFF
Indique les caractéristiques d'affichage d'un attribut donné d'une colonne de type d'objet, comme le format des données de type NUMBER. Les colonnes et les attributs ne doivent pas porter le même nom car ils partagent un espace de noms commun.
Permet également de lister les caractéristiques d'affichage en cours d'un attribut ou de tous les attributs.
Exemples
Pour que l'attribut LAST_NAME du type d'objet EMPLOYEE_TYPE fasse 20 caractères de large, entrez :
ATTRIBUTE EMPLOYEE_TYPE.LAST_NAME FORMAT A20
Pour que l'attribut SALARY du type d'objet EMPLOYEE_TYPE soit présenté en millions de dollars, arrondi à deux décimales, que les milliers soient séparés par des virgules et que $0.00 apparaisse lorsque la valeur est zéro, entrez :
ATTRIBUTE EMPLOYEE_TYPE.SALARY FORMAT $9,999,990.99
Syntaxe
BRE[AK] [ON report_element [action [action]]] ...
où la syntaxe de report_element est {column|expr|ROW|REPORT}
et la syntaxe de action est [SKI[P] n|[SKI[P]] PAGE] [NODUP[LICATES]|DUP[LICATES]]
Définit l'emplacement des modifications dans un rapport et l'action de formatage à effectuer, comme :
Suppression de l'affichage des valeurs en double pour une colonne donnée
Saut d'une ligne chaque fois qu'une valeur de colonne donnée change (dans iSQL*Plus, uniquement lorsque la sortie préformatée est activée)
Impression de chiffres calculés chaque fois que la valeur d'une colonne donnée change ou à la fin du rapport
Entrez BREAK sans clause pour répertorier la définition BREAK en cours.
Exemples
Pour générer un rapport contenant les valeurs de travail en double, la moyenne des salaires (SALARY) et la somme des salaires, vous pouvez entrer les commandes suivantes. (Dans cet exemple, seuls sont sélectionnés les services 50 et 80, et les fonctions "clerk" et "salesman".)
BREAK ON DEPARTMENT_ID ON JOB_ID DUPLICATES COMPUTE SUM OF SALARY ON DEPARTMENT_ID COMPUTE AVG OF SALARY ON JOB_ID SELECT DEPARTMENT_ID, JOB_ID, LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE JOB_ID IN ('SH_CLERK', 'SA_MAN') AND DEPARTMENT_ID IN (50, 80) ORDER BY DEPARTMENT_ID, JOB_ID;
DEPARTMENT_ID JOB_ID LAST_NAME SALARY ------------- ---------- ------------------------- ---------- 50 SH_CLERK Taylor 3200 SH_CLERK Fleaur 3100 . . . SH_CLERK Gates 2900 DEPARTMENT_ID JOB_ID LAST_NAME SALARY ------------- ---------- ------------------------- ---------- 50 SH_CLERK Perkins 2500 SH_CLERK Bell 4000 . . . SH_CLERK Grant 2600 ********** ---------- avg 3215 DEPARTMENT_ID JOB_ID LAST_NAME SALARY ------------- ---------- ------------------------- ---------- ************* ---------- sum 64300 80 SA_MAN Russell 14000 SA_MAN Partners 13500 SA_MAN Errazuriz 12000 SA_MAN Cambrault 11000 SA_MAN Zlotkey 10500 ********** ---------- avg 12200 DEPARTMENT_ID JOB_ID LAST_NAME SALARY ------------- ---------- ------------------------- ---------- ************* ---------- sum 61000 25 rows selected. |
Syntaxe
BTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
où printspec représente une ou plusieurs des clauses suivantes qui permettent de définir l'emplacement et le formatage du texte :
BOLD
CE[NTER]
COL n
FORMAT text
LE[FT]
R[IGHT]
S[KIP] [n]
TAB n
Place le titre indiqué en bas de chaque page du rapport et en définit le format, ou liste la définition BTITLE en cours.
Exemples
Pour définir un titre de bas de page comportant CORPORATE PLANNING DEPARTMENT à gauche et une date à droite, entrez :
BTITLE LEFT 'CORPORATE PLANNING DEPARTMENT' - RIGHT '1 JAN 2001'
Pour définir un titre de bas de page comportant CONFIDENTIAL en colonne 50, suivi
de six espaces et
d'une date, entrez :
BTITLE COL 50 'CONFIDENTIAL' TAB 6 '1 JAN 2001'
Syntaxe
CL[EAR] option ...
où option représente l'une des clauses suivantes :
BRE[AKS]
BUFF[ER]
COL[UMNS]
COMP[UTES]
SQL
TIMI[NG]
Réinitialise ou efface la valeur ou la définition en cours de l'option indiquée.
Exemples
Pour effacer les définitions BREAK, entrez :
CLEAR BREAKS
Pour effacer les définitions COLUMN, entrez :
CLEAR COLUMNS
Syntaxe
COL[UMN] [{column | expr} [option ...]]
où option représente l'une des clauses suivantes :
ALI[AS] alias
CLE[AR]
ENTMAP {ON | OFF}
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT] | C[ENTER] | R[IGHT]}
LIKE {expr | alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT] | PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON | OFF
WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]
Définit les attributs d'affichage d'une colonne donnée, par exemple :
texte de l'en-tête de colonne
format des données de type NUMBER
retours à la ligne pour les données des colonnes
Permet également de lister les attributs d'affichage en cours d'une colonne ou de toutes les colonnes.
Formats numériques
Le tableau 5-1 indique les formats que vous pouvez utiliser dans la clause COLUMN FORMAT et dans SET NUMFORMAT.
Formats numériques
Elément | Exemples | Description |
---|---|---|
, (virgule) |
9,999 |
Affiche une virgule à l'emplacement désigné. |
. (point) |
99.99 |
Imprime un point (.) pour séparer la partie entière et la partie décimale d'un nombre. |
$
|
$9999 |
Affiche un signe dollar à gauche. |
0 |
0999 9990 |
Affiche des zéros à gauche. Affiche des zéros à droite. |
9 |
9999 |
Affiche une valeur dont le nombre de chiffres est indiqué par le nombre de 9. La valeur comporte un espace à gauche si elle est positive et un signe moins à gauche si elle est négative. Des espaces sont affichés pour les zéros de gauche. Un zéro (0) est affiché pour une valeur nulle. |
B |
B9999 |
Affiche des espaces pour la partie entière d'un nombre à virgule fixe lorsque la partie entière est égale à zéro, sans tenir compte des zéros du modèle de format. |
C |
C999 |
Affiche le symbole de devise ISO à l'emplacement spécifié. |
D |
99D99 |
Affiche le caractère décimal indiqué pour séparer la partie entière et la partie décimale d'un nombre. |
EEEE |
9.999EEEE |
Affiche la valeur en notation scientifique (le format doit contenir exactement quatre "E"). |
G |
9G999 |
Affiche le séparateur de groupes, aux emplacements spécifiés, dans la partie entière d'un nombre. |
L |
L999 |
Affiche le symbole de devise local à l'emplacement spécifié. |
MI |
9999MI |
Affiche un signe moins à droite d'une valeur négative. Affiche un espace à droite d'une valeur positive. |
PR |
9999PR |
Affiche une valeur négative entre <chevrons>. Affiche une valeur positive avec un espace à gauche et à droite. |
RN rn |
RN rn |
Affiche des chiffres romains majuscules. Affiche des chiffres romains minuscules. La valeur peut être un entier compris entre 1 et 3 999. |
S |
S9999 9999S |
Affiche un signe plus ou moins à gauche. Affiche un signe plus ou moins à droite. |
TM |
TM |
Affiche le plus petit nombre de décimales possible. La valeur par défaut est TM9. La notation en virgule fixe est utilisée pour les résultats comportant moins de 64 caractères, et la notation scientifique pour ceux comportant plus de 64 caractères. Aucun autre élément ne peut précéder TM. TM ne peut être suivi que d'un 9 ou d'un E |
U |
U9999 |
Affiche le symbole de devise double à l'emplacement spécifié. |
V |
999V99 |
Affiche la valeur multipliée par 10n, où n correspond au nombre de 9 après le V. |
X |
XXXX xxxx |
Affiche la valeur hexadécimale correspondant à la valeur arrondie du nombre de chiffres indiqué. |
Exemples
Pour que la colonne LAST_NAME fasse 20 caractères de large et que EMPLOYEE NAME soit affiché sur deux lignes comme en-tête de colonne, entrez :
COLUMN LAST_NAME FORMAT A20 HEADING 'EMPLOYEE|NAME'
Pour que la colonne SALARY soit présentée en millions de dollars, arrondie à deux décimales, que les milliers soient séparés par des virgules et que $0.00 apparaisse lorsque la valeur est zéro, entrez :
COLUMN SALARY FORMAT $9,999,990.99
Pour affecter l'alias NET à une colonne contenant une expression longue, pour afficher le résultat dans un format en dollars, et pour afficher <NULL> pour les valeurs NULL, entrez par exemple :
COLUMN SALARY+COMMISSION_PCT+BONUS-EXPENSES-INS-TAX ALIAS NET COLUMN NET FORMAT $9,999,999.99 NULL '<NULL>'
A noter qu'ici deux commandes COLUMN sont employées. La première définit l'alias NET et la seconde utilise NET pour définir le format.
A noter également que dans la première commande, l'expression doit être saisie exactement comme dans la commande SELECT. Autrement, SQL*Plus ne peut pas mettre en correspondance la commande COLUMN avec la colonne appropriée.
Pour renvoyer à la ligne les valeurs longues d'une colonne nommée REMARKS, entrez :
COLUMN REMARKS FORMAT A20 WRAP
CUSTOMER DATE QUANTITY REMARKS ---------- --------- -------- -------------------- 123 25-AUG-2001 144 This order must be s hipped by air freigh t to ORD |
Pour imprimer la date en cours et le nom en cours de chaque travail dans le titre de niveau supérieur, entrez les éléments suivants. Utilisez la table EMPLOYEES du schéma HR et non la vue EMP_DETAILS_VIEW.
COLUMN JOB_ID NOPRINT NEW_VALUE JOBVAR COLUMN TODAY NOPRINT NEW_VALUE DATEVAR BREAK ON JOB_ID SKIP PAGE ON TODAY TTITLE CENTER 'Job Report' RIGHT DATEVAR SKIP 2 - LEFT 'Job: ' JOBVAR SKIP 2 SELECT TO_CHAR(SYSDATE, 'MM/DD/YYYY') TODAY, LAST_NAME, JOB_ID, MANAGER_ID, HIRE_DATE, SALARY, DEPARTMENT_ID FROM EMPLOYEES WHERE JOB_ID IN ('MK_MAN', 'SA_MAN') ORDER BY JOB_ID, LAST_NAME; |
Pour changer le format par défaut des colonnes de type DATE en 'YYYY-MM-DD', entrez :
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
Session altered. |
Pour obtenir des informations sur la commande ALTER SESSION, reportez-vous au manuel Oracle Database SQL Reference.
Syntaxe
COMP[UTE] [function [LAB[EL] text] ... OF {expr | column | alias} ... ON {expr | column | alias | REPORT | ROW} ...]
Utilisée avec la commande BREAK, cette commande calcule, à l'aide de fonctions de calcul standard, des lignes récapitulatives pour les sous-ensembles de lignes sélectionnées et les imprime. Permet également de répertorier toutes les définitions COMPUTE.
Exemples
Pour calculer un sous-total des salaires (SALARY) pour les fonctions "account manager" (AC_MGR) et "salesman" (SA_MAN), et l'afficher avec le libellé "TOTAL", entrez :
BREAK ON JOB_ID SKIP 1; COMPUTE SUM LABEL 'TOTAL' OF SALARY ON JOB_ID; SELECT JOB_ID, LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE JOB_ID IN ('AC_MGR', 'SA_MAN') ORDER BY JOB_ID, SALARY;
JOB_ID LAST_NAME SALARY ---------- ------------------------- ---------- AC_MGR Higgins 12000 ********** ---------- TOTAL 12000 SA_MAN Zlotkey 10500 Cambrault 11000 Errazuriz 12000 Partners 13500 Russell 14000 ********** ---------- TOTAL 61000 6 rows selected. |
Pour calculer les salaires moyen et maximum des services (DEPARTMENT_NAME) Executive et Accounting, entrez :
BREAK ON DEPARTMENT_NAME SKIP 1 COMPUTE AVG LABEL 'Dept Average' - MAX LABEL 'Dept Maximum' - OF SALARY ON DEPARTMENT_NAME SELECT DEPARTMENT_NAME, LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE DEPARTMENT_NAME IN ('Executive', 'Accounting') ORDER BY DEPARTMENT_NAME;
DEPARTMENT_NAME LAST_NAME SALARY ------------------------------ ------------------------- ---------- Accounting Higgins 12000 Gietz 8300 ****************************** ---------- Dept Average 10150 Dept Maximum 12000 Executive King 24000 Kochhar 17000 De Haan 17000 ****************************** ---------- Dept Average 19333.3333 Dept Maximum 24000 |
Pour faire la somme des salaires des services dont l'identificateur est <= 20 et l'imprimer sans libellé, entrez :
COLUMN DUMMY NOPRINT COMPUTE SUM OF SALARY ON DUMMY BREAK ON DUMMY SKIP 1 SELECT DEPARTMENT_ID DUMMY, DEPARTMENT_ID, LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE DEPARTMENT_ID <= 20 ORDER BY DEPARTMENT_ID;
DEPARTMENT_ID LAST_NAME SALARY ------------- ------------------------- ---------- 10 Whalen 4400 ---------- 4400 20 Hartstein 13000 20 Fay 6000 ---------- 19000 |
Syntaxe
CONN[ECT] [{ logon | / } [AS {SYSOPER | SYSDBA}]]
où la syntaxe de logon est username[/password] [@connect_identifier]
Connecte un utilisateur donné à Oracle Database. Lorsque vous exécutez une commande CONNECT, le profil de site (glogin.sql) est exécuté.
CONNECT n'invite pas l'utilisateur à indiquer de nouveau son nom utilisateur ou son mot de passe si la connexion initiale échoue.
Avertissement : Le fait d'indiquer votre mot de passe au format texte normal peut poser des problèmes de sécurité. Pour éviter cela, n'indiquez pas le mot de passe et saisissez-le uniquement lorsque le système vous le demande. |
Exemples
Pour vous connecter via Oracle Net, avec le nom utilisateur HR, à la base de données connue sous l'alias Oracle Net FLEETDB, entrez :
CONNECT HR@FLEETDB
Pour plus d'informations sur la configuration du fichier de mots de passe, reportez-vous au manuel Oracle Database Administrator's Guide.
Syntaxe
DEF[INE] [variable] | [variable = text]
Définit une variable utilisateur ou prédéfinie, et lui affecte une valeur de type CHAR, ou répertorie la valeur et le type d'une seule variable ou de toutes.
Exemples
Pour affecter la valeur MANAGER à la variable POS, entrez :
DEFINE POS = MANAGER
Si vous exécutez une commande contenant une référence à &POS, SQL*Plus ne vous demande pas la valeur de la variable ; il remplace &POS par la valeur MANAGER.
Pour affecter la valeur 20 de type CHAR à la variable DEPARTMENT_ID, entrez :
DEFINE DEPARTMENT_ID = 20
Bien que 20 soit un nombre, SQL*Plus affecte à DEPARTMENT_ID une valeur de type CHAR composée des deux caractères 2 et 0.
Pour lister la définition de DEPARTMENT_ID, entrez :
DEFINE DEPARTMENT_ID
DEFINE DEPARTMENT_ID = "20" (CHAR) |
Le résultat indique que la valeur de DEPARTMENT_ID est 20.
Syntaxe
DESC[RIBE] {[schema.]object[@connect_identifier]}
Répertorie les définitions de colonne de la table, de la vue ou du synonyme indiqué, ou les spécifications de la fonction ou de la procédure indiquée.
Exemples
Pour obtenir la description de la vue EMP_DETAILS_VIEW, entrez :
DESCRIBE EMP_DETAILS_VIEW
Name Null? Type ----------------------------------------- -------- ---------------- EMPLOYEE_ID NOT NULL NUMBER(6) JOB_ID NOT NULL VARCHAR2(10) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4) LOCATION_ID NUMBER(4) COUNTRY_ID CHAR(2) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) DEPARTMENT_NAME NOT NULL VARCHAR2(30) JOB_TITLE NOT NULL VARCHAR2(35) CITY NOT NULL VARCHAR2(30) STATE_PROVINCE VARCHAR2(25) COUNTRY_NAME VARCHAR2(40) REGION_NAME VARCHAR2(25) |
Pour décrire une procédure nommée CUSTOMER_LOOKUP, entrez :
DESCRIBE customer_lookup
PROCEDURE customer_lookup Argument Name Type In/Out Default? ---------------------- -------- -------- --------- CUST_ID NUMBER IN CUST_NAME VARCHAR2 OUT |
Pour créer le package APACK contenant les procédures aproc et bproc, et en obtenir la description, entrez :
CREATE PACKAGE apack AS PROCEDURE aproc(P1 CHAR, P2 NUMBER); PROCEDURE bproc(P1 CHAR, P2 NUMBER); END apack; /
Package created. |
DESCRIBE apack
PROCEDURE APROC Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- P1 CHAR IN P2 NUMBER IN PROCEDURE BPROC Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- P1 CHAR IN P2 NUMBER IN |
Pour plus d'informations sur l'utilisation des commandes SET DESCRIBE et SHOW DESCRIBE, reportez-vous aux commandes SET et SHOW.
Syntaxe
DISC[ONNECT]
Valide les modifications en suspens dans la base de données et déconnecte l'utilisateur d'Oracle Database, mais sans sortir d'iSQL*Plus.
Exemples
Un script peut commencer par une commande CONNECT et se terminer par une commande DISCONNECT, comme dans l'exemple ci-dessous :
CONNECT HR SELECT LAST_NAME, DEPARTMENT_NAME FROM EMP_DETAILS_VIEW; DISCONNECT SET INSTANCE FIN2 CONNECT HR2
Syntaxe
EXEC[UTE] statement
où statement représente une instruction PL/SQL.
Exécute une instruction PL/SQL unique. La commande EXECUTE est souvent utile lorsque vous souhaitez exécuter une instruction PL/SQL faisant référence à une procédure stockée. Pour plus d'informations sur PL/SQL, reportez-vous au manuel PL/SQL User's Guide and Reference.
Exemples
Soit la variable :n, définie comme suit :
VARIABLE n NUMBER
La commande EXECUTE ci-dessous affecte une valeur à la variable attachée (bind variable) n :
EXECUTE :n := 1
PL/SQL procedure successfully completed. |
Pour plus d'informations sur la création d'une variable attachée (bind variable), reportez-vous à la commande VARIABLE.
Syntaxe
{EXIT | QUIT} [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK]
Valide ou annule toutes les modifications en attente, arrête le traitement du script iSQL*Plus en cours et ramène dans la zone d'entrée. Il n'existe aucun moyen d'accéder au code retour dans iSQL*Plus. Dans iSQL*Plus, cliquez sur le bouton Déconnexion pour vous déconnecter d'Oracle Database.
La validation à la sortie ou à l'arrêt du traitement dans iSQL*Plus est effectuée quel que soit le statut de SET AUTOCOMMIT.
Exemples
Dans l'exemple ci-dessous, toutes les transactions non validées sont validées et le code d'erreur de la dernière commande SQL exécutée ou du dernier bloc PL/SQL exécuté est renvoyé.
EXIT SQL.SQLCODE
Syntaxe
HELP | ? [topic]
où topic représente une rubrique d'aide de SQL*Plus, par exemple COLUMN.
Permet d'accéder au système d'aide de la ligne de commande SQL*Plus. Pour obtenir la liste des rubriques, entrez HELP INDEX ou ? INDEX. Vous pouvez visualiser des ressources SQL*Plus sur le site http://www.oracle.com/technology/tech/sql_plus/
et consulter la bibliothèque Oracle Database sur le site http://www.oracle.com/technology/documentation/
.
Dans iSQL*Plus, cliquez sur l'icône Aide pour accéder à l'aide en ligne iSQL*Plus.
Exemples
Pour voir la liste des commandes SQL*Plus pour lesquelles il existe de l'aide, entrez :
HELP INDEX ou ? INDEX
Pour voir la liste (à colonne unique) des commandes SQL*Plus pour lesquelles de l'aide est disponible, entrez :
HELP TOPICS
Syntaxe
L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST]
Liste une ou plusieurs lignes du tampon SQL.
Exemples
Pour lister le contenu du tampon, entrez :
LIST
ou
;
1 SELECT LAST_NAME, DEPARTMENT_ID, JOB_ID 2 FROM EMP_DETAILS_VIEW 3 WHERE JOB_ID = 'SH_CLERK' 4* ORDER BY DEPARTMENT_ID |
L'astérisque indique que la ligne 4 est la ligne en cours.
Pour ne lister que la seconde ligne, entrez :
LIST 2
La seconde ligne est affichée :
2* FROM EMP_DETAILS_VIEW |
Syntaxe
PAU[SE] [text]
où text représente le texte à afficher.
Affiche le bouton Page suivante, sur lequel l'utilisateur doit cliquer pour poursuivre.
Syntaxe
PRI[NT] [variable ...]
où variable ... représente les noms des variables attachées (bind variables) dont vous souhaitez afficher les valeurs.
Affiche la valeur en cours des variables attachées (bind variable). Pour plus d'informations sur ces variables, reportez-vous au manuel PL/SQL User's Guide and Reference.
Exemples
L'exemple ci-dessous illustre la commande PRINT :
VARIABLE n NUMBER BEGIN :n := 1; END; /
PL/SQL procedure successfully completed. |
PRINT n
N ---------- 1 |
Syntaxe
PRO[MPT] [text]
où text représente le texte du message à afficher.
Envoie le message indiqué ou une ligne vierge vers l'écran de l'utilisateur. Si vous omettez text, PROMPT affiche une ligne vierge sur l'écran de l'utilisateur.
Exemples
L'exemple suivant illustre l'utilisation de PROMPT avec ACCEPT dans un script nommé ASKFORDEPT.SQL. Ce dernier contient les commandes SQL et SQL*Plus suivantes :
PROMPT PROMPT Please enter a valid department PROMPT For example: 10 SELECT DEPARTMENT_NAME FROM EMP_DETAILS_VIEW WHERE DEPARTMENT_ID = &NEWDEPT
Supposons que vous exécutiez ce fichier en utilisant START ou @ :
@ASKFORDEPT.SQL VAL1 @HTTP://machine_name.domain:port/ASKFORDEPT.SQL VAL1
Please enter a valid department For example: 10 Department ID?> |
Vous pouvez saisir un numéro de service à la suite de l'invite "Department ID?>". Par défaut, SQL*Plus liste la ligne contenant &NEWDEPT avant et après remplacement, puis affiche le nom du service correspondant au numéro saisi à la suite de l'invite "Department ID?>". Pour empêcher ce mode de fonctionnement, vous pouvez utiliser SET VERIFY OFF.
Syntaxe
RECOVER {general | managed | BEGIN BACKUP | END BACKUP}
où la clause general a la syntaxe suivante :
[AUTOMATIC] [FROM location]
{ {full_database_recovery | partial_database_recovery | LOGFILE filename}
[ {TEST | ALLOW integer CORRUPTION | parallel_clause } [TEST | ALLOW integer CORRUPTION | parallel_clause ]...]
| CONTINUE [DEFAULT] | CANCEL}
où la clause full_database_recovery a la syntaxe suivante :
[STANDBY] DATABASE
[ {UNTIL {CANCEL | TIME date | CHANGE integer} | USING BACKUP CONTROLFILE}
[UNTIL {CANCEL | TIME date | CHANGE integer} | USING BACKUP CONTROLFILE]...]
où la clause partial_database_recovery a la syntaxe suivante :
{TABLESPACE tablespace [, tablespace]...
| DATAFILE {filename | filenumber} [, filename | filenumber]...
| STANDBY {TABLESPACE tablespace [, tablespace]...
| DATAFILE {filename | filenumber} [, filename | filenumber]...}
UNTIL [CONSISTENT WITH] CONTROLFILE }
où la clause parallel a la syntaxe suivante :
{ NOPARALLEL | PARALLEL [ integer ] }
où la clause managed a la syntaxe suivante :
MANAGED STANDBY DATABASE recover_clause | cancel_clause | finish_clause
où la clause recover_clause a la syntaxe suivante :
{ { DISCONNECT [ FROM SESSION ] | { TIMEOUT integer | NOTIMEOUT } }
| { NODELAY | DEFAULT DELAY | DELAY integer } | NEXT integer
| { EXPIRE integer | NO EXPIRE } | parallel_clause
| USING CURRENT LOGFILE | UNTIL CHANGE integer
| THROUGH { [ THREAD integer ] SEQUENCE integer
| ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} }
[ DISCONNECT [ FROM SESSION ] | { TIMEOUT integer | NOTIMEOUT }
| { NODELAY | DEFAULT DELAY | DELAY integer } | NEXT integer
| { EXPIRE integer | NO EXPIRE } | parallel_clause
| USING CURRENT LOGFILE | UNTIL CHANGE integer
| THROUGH { [ THREAD integer ] SEQUENCE integer
| ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} ] ...
où la clause cancel_clause a la syntaxe suivante :
CANCEL [IMMEDIATE] [WAIT | NOWAIT]
où la clause finish_clause a la syntaxe suivante :
[ DISCONNECT [ FROM SESSION ] ] [ parallel_clause ]
FINISH [ SKIP [ STANDBY LOGFILE ] ] [ WAIT | NOWAIT ]
où la clause parallel_clause a la syntaxe suivante :
{ NOPARALLEL | PARALLEL [ integer ] }
Effectue une récupération après défaillance matérielle sur des tablespaces, des fichiers de données ou l'intégralité de la base de données. Pour plus d'informations : sur la commande RECOVER, reportez-vous au manuel Oracle Database Administrator's Guide ; sur la commande ALTER DATABASE RECOVER, reportez-vous au manuel Oracle Database SQL Reference et au manuel Oracle Database Backup and Recovery Basics.
Vous devez définir AUTORECOVERY sur ON pour pouvoir utiliser la commande RECOVER dans iSQL*Plus.
Pour les opérations DBA à exécution longue, comme RECOVER, il est recommandé d'utiliser la ligne de commande SQL*Plus, et non iSQL*Plus, en raison du risque de temporisation réseau.
Exemples
Pour récupérer la totalité de la base de données, entrez :
RECOVER DATABASE
Pour récupérer la base de données jusqu'à une heure indiquée, entrez :
RECOVER DATABASE UNTIL TIME 01-JAN-2001:04:32:00
Pour récupérer les deux tablespaces ts_one et ts_two, entrez :
RECOVER TABLESPACE ts_one, ts_two
Pour récupérer le fichier de données data1.db, entrez :
RECOVER DATAFILE 'data1.db'
Syntaxe
REM[ARK]
Marque le début d'un commentaire dans un script. iSQL*Plus n'interprète pas les commentaires comme des commandes.
Exemples
Le script ci-dessous contient des commentaires classiques :
REM COMPUTE uses BREAK ON REPORT to break on end of table BREAK ON REPORT COMPUTE SUM OF "DEPARTMENT 10" "DEPARTMENT 20" - "DEPARTMENT 30" "TOTAL BY JOB_ID" ON REPORT REM Each column displays the sums of salaries by job for REM one of the departments 10, 20, 30. SELECT JOB_ID, SUM(DECODE( DEPARTMENT_ID, 10, SALARY, 0)) "DEPARTMENT 10", SUM(DECODE( DEPARTMENT_ID, 20, SALARY, 0)) "DEPARTMENT 20", SUM(DECODE( DEPARTMENT_ID, 30, SALARY, 0)) "DEPARTMENT 30", SUM(SALARY) "TOTAL BY JOB_ID" FROM EMP_DETAILS_VIEW GROUP BY JOB_ID;
Syntaxe
REPF[OOTER] [PAGE] [printspec [text | variable] ...] | [ON | OFF]
où printspec représente une ou plusieurs des clauses suivantes qui permettent de définir l'emplacement et le formatage du texte :
COL n
S[KIP] [n]
TAB n
LE[FT]
CE[NTER]
R[IGHT]
BOLD
FORMAT text
Place le libellé de fin de rapport indiqué à la fin de chaque rapport et en définit le format, ou liste la définition REPFOOTER en cours.
Exemples
Pour que le rapport se termine par le libellé "END EMPLOYEE LISTING REPORT", imprimé sur une page distincte et centré, entrez :
REPFOOTER PAGE CENTER 'END EMPLOYEE LISTING REPORT' TTITLE RIGHT 'Page: ' FORMAT 999 SQL.PNO SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE SALARY > 12000;
LAST_NAME SALARY ------------------------- ---------- King 24000 Kochhar 17000 De Haan 17000 Russell 14000 Partners 13500 Hartstein 13000 ---------- sum 98500 Page: 2 END EMPLOYEE LISTING REPORT 6 rows selected. |
Pour supprimer le libellé de fin de rapport sans en changer la définition, entrez :
REPFOOTER OFF
Syntaxe
REPH[EADER] [PAGE] [printspec [text | variable] ...] | [ON | OFF]
où printspec représente une ou plusieurs des clauses suivantes qui permettent de définir l'emplacement et le formatage du texte :
COL n
S[KIP] [n]
TAB n
LE[FT]
CE[NTER]
R[IGHT]
BOLD
FORMAT text
Place le libellé de début de rapport indiqué au début de chaque rapport et en définit le format, ou liste la définition REPHEADER en cours.
Exemples
Pour que le rapport débute par le libellé "EMPLOYEE LISTING REPORT", imprimé sur une page distincte et centré, entrez :
REPHEADER PAGE CENTER 'EMPLOYEE LISTING REPORT' TTITLE RIGHT 'Page: ' FORMAT 999 SQL.PNO SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE SALARY > 12000;
Page: 1 EMPLOYEE LISTING REPORT Page: 2 LAST_NAME SALARY ------------------------- ---------- King 24000 Kochhar 17000 De Haan 17000 Russell 14000 Partners 13500 Hartstein 13000 ---------- sum 98500 6 rows selected. |
Pour supprimer le libellé de début de rapport sans en changer la définition, entrez :
REPHEADER OFF
Syntaxe
R[UN]
Liste et exécute la commande SQL, ou le bloc PL/SQL se trouvant actuellement dans le tampon SQL.
Exemples
Supposons que le tampon SQL contienne le script suivant :
SELECT DEPARTMENT_ID FROM EMP_DETAILS_VIEW WHERE SALARY>12000
Pour exécuter le script au moyen de RUN, entrez :
RUN
1 SELECT DEPARTMENT_ID 2 FROM EMP_DETAILS_VIEW 3 WHERE SALARY>12000 DEPARTMENT_ID ------------- 90 90 90 80 80 20 6 rows selected. |
Définit une variable système de sorte à modifier le paramétrage de l'environnement SQL*Plus de la session en cours, par exemple :
personnalisation du formatage HTML
activation ou désactivation de l'impression des en-têtes de colonne
définition du nombre de lignes par page
définition de la largeur d'affichage des données
Vous pouvez également utiliser les écrans Préférences dans iSQL*Plus pour définir les variables système.
Syntaxe
SET system_variable value
où system_variable et value représentent l'une des clauses affichées dans la table Syntaxe de la commande SET, ci-dessous.
Définit l'inscription automatique des scripts via le package DBMS_APPLICATION_INFO.
Exemple
Pour afficher la valeur d'APPINFO, la valeur par défaut étant OFF, entrez :
SET APPINFO ON SHOW APPINFO
APPINFO is ON and set to "SQL*Plus" |
Pour modifier le texte par défaut, entrez :
SET APPINFO 'This is SQL*Plus'
Pour vous assurer que la modification a bien été prise en compte, entrez :
VARIABLE MOD VARCHAR2(50) VARIABLE ACT VARCHAR2(40) EXECUTE DBMS_APPLICATION_INFO.READ_MODULE(:MOD, :ACT);
PL/SQL procedure successfully completed. |
PRINT MOD
MOD --------------------------------------------------- This is SQL*Plus |
Pour ramener APPINFO au paramétrage par défaut, entrez :
SET APPINFO OFF
Définit le nombre de lignes que SQL*Plus extrait de la base de données en une seule fois.
Indique quand Oracle Database valide les modifications en attente des commandes SQL ou PL/SQL.
SET AUTOCOMMIT ne modifie pas le comportement de validation lorsque vous quittez SQL*Plus. Toutes les données non validées sont, par défaut, validées.
Définit l'impression automatique des variables attachées (bind variable).
Avec ON, la commande RECOVER applique automatiquement les noms de fichier par défaut des fichiers de journalisation d'archivage nécessaires au cours de la récupération.
Vous devez définir AUTORECOVERY sur ON pour pouvoir utiliser la commande RECOVER dans iSQL*Plus.
Exemple
Pour que le mode de récupération soit AUTOMATIC, entrez :
SET AUTORECOVERY ON RECOVER DATABASE
Affiche un rapport sur l'exécution des instructions SQL DML (SELECT, INSERT, UPDATE ou DELETE) qui ont réussi.
Définit c comme étant le caractère de fin des blocs PL/SQL.
Définit c comme étant le caractère non alphanumérique utilisé pour séparer les différentes commandes SQL*Plus entrées sur une même ligne.
Exemple
Pour définir un titre à l'aide de la commande TTITLE et formater une colonne avec la commande COLUMN, et pour indiquer les deux commandes sur la même ligne, entrez :
SET CMDSEP + TTITLE LEFT 'SALARIES' + COLUMN SALARY FORMAT $99,999 SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE JOB_ID = 'SH_CLERK';
SALARIES LAST_NAME SALARY ------------------------- -------- Taylor $3,200 Fleaur $3,100 Sullivan $2,500 Geoni $2,800 Sarchand $4,200 Bull $4,100 Dellinger $3,400 Cabrio $3,000 Chung $3,800 Dilly $3,600 Gates $2,900 Perkins $2,500 Bell $4,000 Everett $3,900 McCain $3,200 Jones $2,800 SALARIES LAST_NAME SALARY ------------------------- -------- Walsh $3,100 Feeney $3,000 OConnell $2,600 Grant $2,600 20 rows selected. |
Définit le caractère de séparation de colonnes imprimé entre les colonnes d'une sortie.
Le caractère de séparation de colonnes (SET COLSEP) est pris en charge dans iSQL*Plus uniquement lorsque vous activez (ON) la sortie préformatée (SET MARKUP HTML PREFORMAT).
Exemple
Pour que le séparateur de colonnes soit "|", entrez :
SET MARKUP HTML PREFORMAT ON SET COLSEP '|' SELECT LAST_NAME, JOB_ID, DEPARTMENT_ID FROM EMP_DETAILS_VIEW WHERE DEPARTMENT_ID = 20;
LAST_NAME |JOB_ID |DEPARTMENT_ID -------------------------|----------|------------- Hartstein |MK_MAN | 20 Fay |MK_REP | 20 |
Définit le caractère utilisé pour marquer la fin d'une référence à une variable de substitution dans les cas où SQL*Plus interpréterait le caractère suivant comme faisant partie du nom de la variable.
Détermine le nombre de lignes au bout duquel la commande COPY valide les modifications dans la base de données.
Définit la suppression de la comparaison des types de données lors de l'insertion ou de l'adjonction de tables à l'aide de la commande COPY.
Définit comme préfixe de variable de substitution le caractère c.
Définit le niveau de profondeur utilisable pour la description récursive d'un objet.
Exemple
Pour créer un type d'objet ADDRESS, entrez :
CREATE TYPE ADDRESS AS OBJECT ( STREET VARCHAR2(20), CITY VARCHAR2(20) ); /
Type created |
Pour créer la table EMPLOYEE contenant un objet imbriqué, EMPADDR, de type ADDRESS, entrez :
CREATE TABLE EMPLOYEE (LAST_NAME VARCHAR2(30), EMPADDR ADDRESS, JOB_ID VARCHAR2(20), SALARY NUMBER(7,2) ); /
Table created |
Pour décrire la table EMPLOYEE avec deux niveaux de profondeur, et mettre en retrait la sortie et afficher les numéros de ligne, entrez :
SET DESCRIBE DEPTH 2 LINENUM ON INDENT ON DESCRIBE employee
Name Null? Type ------------------------------- -------- -------------------------- 1 LAST_NAME VARCHAR2(30) 2 EMPADDR ADDRESS 3 2 STREET VARCHAR2(20) 4 2 CITY VARCHAR2(20) 5 JOB_ID VARCHAR2(20) 6 SALARY NUMBER(7,2) |
Indique si les commandes sont répercutées dans un script exécuté avec @, @@ ou START. ON affiche les commandes à l'écran. OFF supprime l'affichage. ECHO n'a aucune incidence sur l'affichage des commandes que vous entrez de manière interactive ou que vous redirigez vers iSQL*Plus à partir du système d'exploitation.
Détermine l'endroit d'une page où commence chaque rapport.
Définit le caractère utilisé comme caractère d'échappement.
Exemple
Si vous définissez le caractère d'échappement comme étant le point d'exclamation (!), alors les commandes ci-dessous :
SET ESCAPE ! ACCEPT v1 PROMPT 'Enter !&1:'
vous permettent d'obtenir l'invite suivante :
Enter &1: |
Pour que le caractère d'échappement reprenne sa valeur par défaut, \ (barre oblique inversée), entrez :
SET ESCAPE ON
Affiche le nombre d'enregistrements renvoyés par un script lorsque ce script sélectionne au moins n enregistrements.
Effectue un contrôle de conformité aux normes ANSI/ISO SQL92 des instructions SQL.
Gère l'impression des en-têtes de colonne dans les rapports.
Exemple
Pour supprimer l'affichage des en-têtes de colonnes dans un rapport, entrez :
SET HEADING OFF
Si vous exécutez alors la commande SQL suivante :
SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE JOB_ID = 'AC_MGR';
vous obtenez le résultat ci-dessous :
Higgins 12000 |
Pour réactiver l'affichage des en-têtes de colonne, entrez :
SET HEADING ON
Définit le caractère utilisé comme saut de ligne dans les en-têtes de colonne.
Le caractère de séparation des en-têtes (SET HEADSEP) est pris en charge dans iSQL*Plus uniquement lorsque la préférence de sortie préformatée est activée (SET MARKUP HTML PREFORMAT).
Fait du chemin d'instance indiqué l'instance par défaut de la session.
Exemple
Pour que l'instance par défaut soit "PROD1", entrez :
DISCONNECT SET INSTANCE PROD1
Pour que INSTANCE reprenne sa valeur par défaut, "local", entrez :
SET INSTANCE local
Pour pouvoir modifier l'instance, vous devez vous déconnecter de toutes les instances.
Définit le nombre total de caractères qu'iSQL*Plus affiche sur une ligne avant de passer à la ligne suivante.
Définit la position de départ à partir de laquelle les données CLOB et NCLOB sont extraites et affichées.
Exemple
Pour que la position à partir de laquelle les données d'une colonne CLOB sont extraites soit la 22e position, entrez :
SET LOBOFFSET 22
Les données CLOB iront à la ligne à l'écran ; SQL*Plus ne tronquera pas avant le 23e caractère.
Définit l'emplacement d'où sont extraits les journaux d'archivage au cours dela récupération.
Exemple
Pour que l'emplacement par défaut des fichiers journaux utilisés pour la récupération soit le répertoire "/usr/oracle10/dbs/arch", entrez :
SET LOGSOURCE "/usr/oracle10/dbs/arch" RECOVER DATABASE
Définit la largeur maximale (en octets) pour l'affichage des valeurs CLOB, LONG, NCLOB et XMLType, et pour la copie des valeurs LONG.
Exemple
Pour paramétrer sur 500 le nombre maximal d'octets à extraire pour l'affichage et la copie de valeurs LONG, entrez :
SET LONG 500
Les données LONG iront à la ligne à l'écran ; SQL*Plus ne tronquera pas les données avant le 501e octet. La valeur par défaut de LONG est 80.
Définit la taille (en octets) utilisée par SQL*Plus pour l'extraction des valeurs CLOB, LONG, NCLOB ou XMLType.
Exemple
Pour que SQL*Plus extraie les valeurs LONG par incréments de 100 octets, entrez :
SET LONGCHUNKSIZE 100
Les données LONG seront extraites par incréments de 100 octets, jusqu'à ce que la totalité de la valeur ait été extraite ou jusqu'à ce que la valeur définie par SET LONG soit atteinte (première condition remplie).
Produit en sortie du texte avec marquage HTML, type de sortie utilisé par iSQL*Plus.
Définit le texte affiché lorsqu'une valeur NULL est détectée dans le résultat d'une commande SQL SELECT.
Définit le format par défaut d'affichage des nombres. format doit être un format numérique. Pour plus d'informations sur la syntaxe de format, reportez-vous à Formats numériques dans la section traitant de la commande COLUMN. Entrez :
SET NUMFORMAT ""
pour utiliser le modèle de largeur et de formatage de champ par défaut indiqué par SET NUMWIDTH.
Définit la largeur par défaut d'affichage des nombres. Pour plus d'informations sur la syntaxe du format, reportez-vous à Formats numériques dans la section traitant de la commande COLUMN.
Les paramètres COLUMN FORMAT sont prioritaires sur les paramètres SET NUMFORMAT, eux-mêmes prioritaires sur les paramètres SET NUMWIDTH.
Définit le nombre de lignes affichées sur chaque page. Les messages d'erreur et d'information ne sont pas pris en compte dans la taille de la page ; les pages peuvent donc ne pas avoir exactement la même longueur. La taille de page par défaut pour iSQL*Plus est 24.
SET PAUSE ON affiche la valeur de text, met la sortie en pause et affiche un bouton Page suivante après le nombre PAGESIZE de lignes de la sortie de rapport. Cliquez sur ce bouton pour visualiser d'autres sorties de rapport. Ce bouton n'est pas affiché sur la dernière page de sortie.
RECSEP indique à SQL*Plus où effectuer les séparations entre enregistrements.
La préférence Affichage du séparateur d'enregistrements (SET RECSEP) est prise en charge dans iSQL*Plus uniquement lorsque la préférence de sortie préformatée est activée (SET MARKUP HTML PREFORMAT).
Définit le caractère à afficher ou imprimer pour séparer les enregistrements.
Indique si la sortie (DBMS_OUTPUT.PUT_LINE) des procédures stockées ou des blocs PL/SQL doit être affichée dans SQL*Plus.
Exemple
Pour activer l'affichage de texte dans un bloc PL/SQL à l'aide de DBMS_OUTPUT.PUT_LINE, entrez :
SET SERVEROUTPUT ON
L'exemple ci-dessous illustre ce qui se passe lors de l'exécution d'une procédure anonyme avec SET SERVEROUTPUT ON :
BEGIN DBMS_OUTPUT.PUT_LINE('Task is complete'); END; /
Task is complete. PL/SQL procedure successfully completed. |
Convertit la casse des commandes SQL et des blocs PL/SQL juste avant l'exécution.
Définit le comportement à utiliser comme étant celui de la version indiquée par x.y[.z].
La matrice de compatibilité de SQL*Plus présente sous forme de tableau le comportement affecté par chaque paramètre de compatibilité SQL*Plus. Les modes de compatibilité SQL*Plus peuvent être définis de trois façons différentes :
Vous pouvez inclure une commande SET SQLPLUSCOMPATIBILITY dans votre site ou profil utilisateur. Lors de l'installation, aucun paramètre SET SQLPLUSCOMPATIBILITY n'existe dans glogin.sql. Par conséquent, la compatibilité par défaut est 10.2.
Vous pouvez utiliser l'argument de commande SQLPLUS -C[OMPATIBILITY] {x.y[.z]} au démarrage pour définir le mode de compatibilité de cette session.
Vous pouvez utiliser la commande SET SQLPLUSCOMPATIBILITY {x.y[.z]} pendant une session pour définir le comportement SQL*Plus de cette session.
Le tableau suivant indique la version de SQL*Plus qui a introduit le changement de comportement et, par conséquent, la valeur minimale de SQLPLUSCOMPATIBILITY pour obtenir ce comportement. Par exemple, pour obtenir le comportement antérieur de la commande VARIABLE, vous devez utiliser une version de SQL*Plus antérieure à la version 9.0.1 ou utiliser une valeur SQLPLUSCOMPATIBILITY inférieure à 9.0.1. La valeur définie pour SQLPLUSCOMPATIBILITY ne peut pas être inférieure à 7.3.4.
Matrice de compatibilité
Définit le caractère utilisé pour terminer le script ou l'entrée de données des blocs PL/SQL ou des instructions SQL, pour exécuter le script et le charger dans le tampon.
Gère l'affichage des statistiques temporelles.
Définit le caractère utilisé pour souligner les en-têtes de colonne dans les rapports. Le caractère de soulignement ne peut pas être un caractère alphanumérique ni un caractère non imprimable. Les options ON et OFF permettent d'activer et de désactiver le soulignement. ON ramène la valeur de c à la valeur par défaut "-".
La commande SET UNDERLINE est prise en charge dans iSQL*Plus lorsque la commande SET MARKUP HTML PREFORMAT ON est définie.
Indique si le texte d'une instruction SQL ou d'une commande PL/SQL doit être listé avant et après remplacement des variables de substitution par des valeurs. Avec ON le texte est listé ; avec OFF, il ne l'est pas.
Indique si le système doit tronquer lors de l'affichage une ligne sélectionnée si elle est trop longue pour la longueur de ligne en cours. Avec OFF, la ligne sélectionnée est tronquée ; avec ON, il y a retour à la ligne suivante.
Les clauses WRAPPED et TRUNCATED de la commande COLUMN permettent de supplanter la valeur de WRAP pour des colonnes données.
La préférence Renvois à la ligne (SET WRAP) est prise en charge dans iSQL*Plus uniquement lorsque la sortie préformatée (SET MARKUP HTML PREFORMAT) est activée.
Indique l'URI de base utilisé pour la résolution des URI relatifs dans les fonctions. Permet de modifier le préfixe du fichier auquel XQuery accède.
Veillez à saisir des valeurs valides car la valeur XQUERY BASEURI ne fait l'objet d'aucune validation système.
Exemple
SET XQUERY BASEURI '/public/scott' xquery for $i in doc("foo.xml") return $i /
Le résultat est le suivant :
select column_Value from xmltable('declare base-uri "/public/scott"; for $i in doc("foo.xml") return $i ') ;
Définit le classement des résultats issus de XQuery. Il existe trois valeurs :
UNORDERED indique que les résultats sont triés selon l'ordre dans lequel ils sont extraits de la base de données.
ORDERED indique que les résultats sont triés selon l'ordre défini par XQuery.
DEFAULT indique que la valeur par défaut de la base de données (UNORDERED - non trié) sera utilisée.
Exemple
SET XQUERY ORDERING ORDERED xquery for $i in doc("foo.xml") return $i /
Le résultat est le suivant :
select column_value from xmltable('declare ordering ordered; for $i in doc("foo.xml") return $i ');
Définit le mode de conservation de l'identité de noeud. Ce mode s'applique à toutes les expressions qui créent un noeud (tels que les constructeurs d'élément), ou qui renvoient un élément ou une séquence contenant des noeuds (comme les expressions de chemin). Il existe trois valeurs :
BYVALUE indique qu'il n'est pas nécessaire de conserver l'identité de noeud. Cela signifie que toute opération de noeud (telle qu'une création de noeud ou le renvoi d'un noeud comme résultat d'une expression) fait l'objet d'une copie complète et perd son contexte par rapport à l'arborescence d'origine d'où elle provient. Par conséquent, les opérations réalisées ultérieurement sur ce noeud pour tester l'identité du noeud, les axes parent ou frère, ou le classement ne seront pas définies.
BYREFERENCE indique que les identités de noeud doivent être conservées. Les opérations réalisées ultérieurement sur ce noeud conservent le contexte et la définition du noeud.
DEFAULT indique que la valeur par défaut de la base de données (BYVALUE) sera utilisée.
Exemple
SET XQUERY NODE BYREFERENCE xquery for $i in doc("foo.xml") return $i /
Le résultat est le suivant :
select column_value from xmltable('declare node byreference; for $i in doc("foo.xml") return $i ');
Spécifie une expression d'élément de contexte XQuery. Le résultat de ce type d'expression est l'élément de contexte, qui peut être un noeud (comme dans l'expression fn:doc("bib.xml")//book[fn:count(./author)>1]) ou une valeur atomique (comme dans l'expression (1 to 100)[. mod 5 eq 0]).
Veillez à saisir des valeurs valides car la valeur XQUERY CONTEXT ne fait l'objet d'aucune validation système.
Exemple
SET XQUERY CONTEXT 'doc("foo.xml")' xquery for $i in /a return $i /
Le résultat est le suivant :
select column_value from xmltable('for $i in /a return $i' passing XMLQuery("doc('foo.xml')"));
Syntaxe
SHO[W] option
où option représente l'une des clauses ou termes suivants :
system_variableALL
BTI[TLE]
ERR[ORS] [ { FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER | VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS } [schema.]name]
LNO
PARAMETERS [parameter_name]
PNO
RECYC[LEBIN] [original_name]
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SQLCODE
TTI[TLE]
USER
XQUERY
Affiche la valeur d'une variable système SQL*Plus ou l'environnement SQL*Plus en cours. SHOW SGA n'est utilisable qu'avec une connexion DBA.
Exemples
Pour afficher des informations sur la mémoire SGA, entrez :
SHOW SGA
Total System Global Area 7629732 bytes Fixed Size 60324 bytes Variable Size 6627328 bytes Database Buffers 409600 bytes Redo Buffers 532480 bytes |
L'exemple suivant montre comment créer une procédure stockée puis afficher ses erreurs de compilation :
CONNECT SYSTEM/MANAGER CREATE PROCEDURE HR.PROC1 AS BEGIN :P1 := 1; END; /
Warning: Procedure created with compilation errors. |
SHOW ERRORS PROCEDURE PROC1
NO ERRORS. |
SHOW ERRORS PROCEDURE HR.PROC1
Errors for PROCEDURE HR PROC1: LINE/COL ERROR -------------------------------------------------------- 3/3 PLS-00049: bad bind variable 'P1' |
Pour afficher les objets pouvant être rétablis à l'aide de commandes FLASHBACK (où CJ1 et ABC sont les objets supprimés), entrez :
SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME -------------- ------------------ ------------ -------------------- CJ1 RB$$29458$TABLE$0 TABLE 2003-01-22:14:54:07 ABC RB$$29453$TABLE$0 TABLE 2003-01-20:18:50:29 |
Pour restaurer CJ1, entrez :
FLASHBACK TABLE CJ1 TO BEFORE DROP;
Syntaxe
SHUTDOWN [ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL]]
Arrête une instance Oracle Database actuellement en cours d'exécution, éventuellement avec fermeture et démontage de la base de données.
Exemples
Pour arrêter une base de données en mode normal, entrez :
SHUTDOWN
Database closed. Database dismounted. Oracle instance shut down. |
Syntaxe
STA[RT] {url[.ext] } [arg...]
Appelle et exécute le script indiqué par l'URL à partir d'un serveur Web.
Exemples
Soit un fichier nommé PROMOTE et ayant l'extension SQL qui contient les commandes suivantes :
SELECT FIRST_NAME, LAST_NAME, JOB_ID, SALARYFROM EMP_DETAILS_VIEWWHERE JOB_ID='&1' AND SALARY>&2;
Pour exécuter ce script, entrez :
START PROMOTE ST_MAN 7000
ou, si le fichier se trouve sur un serveur Web, entrez une commande se présentant comme suit :
START HTTP://machine_name.domain:port/PROMOTE.SQL ST_MAN 7000
où machine_name.domain doit être remplacé par hôte.domaine et port par le numéro de port utilisé par le serveur Web où se trouve le script.
La commande suivante est exécutée :
SELECT LAST_NAME, LAST_NAME FROM EMP_DETAILS_VIEW WHERE JOB_ID='ST_MAN' AND SALARY>7000;
et les résultats apparaissent.
Syntaxe
STARTUP options | upgrade_options
où options a la syntaxe suivante :
[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname] | [ OPEN [open_options] [dbname] ] | NOMOUNT ]
où open_options a la syntaxe suivante :
READ {ONLY | WRITE [RECOVER]} | RECOVER
et où upgrade_options a la syntaxe suivante :
[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET]
Démarre une instance Oracle Database avec plusieurs options, dont le montage et l'ouverture de la base de données.
Exemples
Pour démarrer une instance avec le fichier de paramètres standard, monter la base de données par défaut et ouvrir cette dernière, entrez :
STARTUP
ou
STARTUP OPEN database
Pour démarrer une instance avec le fichier de paramètres standard, monter la base de données par défaut et ouvrir cette dernière, entrez :
STARTUP FORCE RESTRICT MOUNT
Pour démarrer une instance avec le fichier de paramètres TESTPARM sans monter la base de données, entrez :
STARTUP PFILE=testparm NOMOUNT
Pour arrêter une base de données particulière, la redémarrer immédiatement et l'ouvrir, n'y autoriser l'accès qu'aux utilisateurs dotés du privilège RESTRICTED SESSION et utiliser le fichier de paramètres MYINIT.ORA, entrez :
STARTUP FORCE RESTRICT PFILE=myinit.ora OPEN database
Syntaxe
TIMI[NG] [START text | SHOW | STOP]
Enregistre des données temporelles pour la période écoulée, liste le nom et les données de l'horloge en cours, ou liste le nombre d'horloges actives.
Exemples
Pour créer une horloge nommée SQL_TIMER, entrez :
TIMING START SQL_TIMER
Pour afficher le titre et le temps cumulé de l'horloge en cours, entrez :
TIMING SHOW
Pour afficher le titre et le temps cumulé de l'horloge en cours et supprimer cette dernière, entrez :
TIMING STOP
Syntaxe
TTI[TLE] [printspec [text | variable] ...] [ON | OFF]
où printspec représente une ou plusieurs des clauses suivantes qui permettent de définir l'emplacement et le formatage du texte :
BOLD
CE[NTER]
COL n
FORMAT text
LE[FT]
R[IGHT]
S[KIP] [n]
TAB n
Place le titre indiqué au début de chaque page du rapport et en définit le format. Entrez TTITLE sans aucune clause pour lister la définition TTITLE en cours. L'ancien format de TTITLE est utilisé lorsque la commande TTITLE n'est suivie que d'un seul mot ou d'une seule chaîne entre apostrophes.
Exemples
Pour que le titre "Monthly Analysis" soit placé au début de chaque page et aligné à gauche, pour que la date soit centrée, pour que le numéro de page ait un format sur 3 chiffres et soit aligné à droite, et pour que "Data in Thousands" apparaisse au centre de la ligne suivante, entrez :
TTITLE LEFT 'Monthly Analysis' CENTER '01 Jan 2003' - RIGHT 'Page:' FORMAT 999 SQL.PNO SKIP CENTER - 'Data in Thousands'
Monthly Analysis 01 Jan 2003 Page: 1 Data in Thousands |
Pour supprimer le libellé de début d'état sans en changer la définition, entrez :
TTITLE OFF
Syntaxe
UNDEF[INE] variable ...
où variable représente le nom de la variable de substitution à supprimer.
Supprime des variables de substitution définies soit explicitement (avec la commande DEFINE), soit implicitement (avec un argument de la commande START).
Exemples
Pour supprimer la définition de la variable de substitution nommée POS, entrez :
UNDEFINE POS
Pour supprimer la définition de deux variables de substitution nommées MYVAR1 et MYVAR2, entrez :
UNDEFINE MYVAR1 MYVAR2
Syntaxe
VAR[IABLE] [variable [type] ]
où type représente l'une des options suivantes :
NUMBER
CHAR
CHAR (n [CHAR | BYTE])
NCHAR
NCHAR (n)
VARCHAR2 (n [CHAR | BYTE])
NVARCHAR2 (n)
CLOB
NCLOB
REFCURSOR
BINARY_FLOAT
BINARY_DOUBLE
Déclare une variable attachée (bind variable) qui peut être référencée en PL/SQL.
Pour libérer des ressources utilisées par les variables attachées (bind variable) CLOB et NCLOB, vous pouvez libérer manuellement les LOB temporaires avec :
EXECUTE DBMS_LOB.FREETEMPORARY(:cv)
Exemples
L'exemple suivant illustre la création d'une variable attachée (bind variable), la modification de sa valeur et l'affichage de sa valeur en cours.
Pour créer une variable attachée (bind variable), entrez :
VARIABLE ret_val NUMBER
Pour modifier cette variable attachée (bind variable) dans SQL*Plus, vous devez utiliser un bloc PL/SQL :
BEGIN :ret_val:=4; END; /
PL/SQL procedure successfully completed. |
Pour afficher la valeur de la variable attachée (bind variable) dans SQL*Plus, entrez :
PRINT ret_val
RET_VAL ---------- 4 |
L'exemple ci-dessous illustre la création d'une variable attachée (bind variable) et l'attribution à cette variable de la valeur renvoyée par une fonction :
VARIABLE id NUMBER BEGIN :id := EMP_MANAGEMENT.HIRE ('BLAKE','MANAGER','KING',2990,'SALES'); END; /
La valeur renvoyée par la procédure stockée est placée dans la variable attachée (bind variable), :id. Elle peut être affichée à l'aide de la commande PRINT ou utilisée ensuite dans des sous-programmes PL/SQL.
L'exemple ci-dessous illustre l'affichage automatique d'une variable attachée (bind variable) :
SET AUTOPRINT ON VARIABLE a REFCURSOR BEGIN OPEN :a FOR SELECT LAST_NAME, CITY, DEPARTMENT_ID FROM EMP_DETAILS_VIEW WHERE SALARY > 12000 ORDER BY DEPARTMENT_ID; END; /
PL/SQL procedure successfully completed. LAST_NAME CITY DEPARTMENT_ID ------------------------- ------------------------------ ------------- Hartstein Toronto 20 Russell Oxford 80 Partners Oxford 80 King Seattle 90 Kochhar Seattle 90 De Haan Seattle 90 6 rows selected. |
Dans cet exemple, il n'est pas nécessaire d'exécuter une commande PRINT pour afficher la variable.
Syntaxe
WHENEVER OSERROR {EXIT [SUCCESS | FAILURE | n | variable | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
Exécute l'action spécifiée (arrête le script en cours, par défaut) et revient à l'espace de travail si une erreur de système d'exploitation survient.
Exemples
Les commandes du script suivant amènent iSQL*Plus à arrêter le traitement du script en cours et à ramener l'utilisateur à la zone Entrée de l'espace de travail :
WHENEVER OSERROR EXIT START no_such_file
Syntaxe
WHENEVER SQLERROR {EXIT [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
Exécute l'action spécifiée (arrête le script en cours, par défaut) et ramène l'utilisateur à l'espace de travail si une commande SQL ou un bloc PL/SQL génère une erreur.
Exemples
Les commandes du script suivant amènent iSQL*Plus à arrêter le traitement du script en cours et à ramener l'utilisateur dans la zone Entrée de l'espace de travail en cas d'échec de la commande SQL UPDATE :
WHENEVER SQLERROR EXIT SQL.SQLCODE UPDATE EMP_DETAILS_VIEW SET SALARY = SALARY*1.1;
Les exemples ci-dessous montrent que la commande WHENEVER SQLERROR n'est pas exécutée pour des erreurs générées par des commandes SQL*Plus mais l'est pour des erreurs générées par des commandes SQL ou des blocs PL/SQL :
WHENEVER SQLERROR EXIT SQL.SQLCODE column LAST_name headIing "Employee Name"
Unknown COLUMN option "headiing" SHOW non_existed_option |
Syntaxe
XQUERY xquery_statement
La commande SQL*Plus XQUERY vous permet d'exécuter une interrogation XQuery 1.0 dans une base de données spécifique. XQUERY est pris en charge dans Oracle Database 10g (version 2) et supérieur. Si vous essayez d'utiliser XQUERY dans une précédente version d'Oracle Database, le message d'erreur suivant apparaît :
SP2-614 Version du serveur insuffisante
Reportez-vous également aux commandes SET XQUERY :
Exemples
L'instruction XQuery du script suivant interroge la vue EMP_DETAILS_VIEW du schéma HR :
set long 160 set linesize 160 xquery for $i in ora:view("EMP_DETAILS_VIEW") return $i /
Result Sequence ------------------------------------------------------------------------------------------- <ROW><EMPNO>7369</EMPNO><ENAME>SMITH</ENAME><JOB>CLERK</JOB><MGR>7902</MGR><HIREDATE>17- DEC-80</HIREDATE><SAL>800</SAL><DEPTNO>20</DEPTNO></ROW> 14 item(s) selected. |