faq oracle

Creation: 21 janvier 2013
Mise à jour: 28 janvier 2013
Version: 1.1
Author: Jean-Louis Bicquelet-Salaün
Location: http://jlbicquelet.free.fr
Copyright: (c) 2013 Jean-Louis BICQUELET

Oracle Frequently-Asked Questions

Pour plus d'information au sujet de cette faq, contactez Jean-Louis BICQUELET


FAQ Revised: Monday 28 January 2013 18:05:40


Table of Contents

1. systeme et oracle
2. dictionnaire de donnees
3. edition
4. tables

1. systeme et oracle

1.1. comment se connecter à oracle ?
On peut utiliser sqlplus pour se connecter à Oracle.

Si on précise /nolog, il n'y aura pas de log.

Une fois passé dans l'interpréteur , on utilise la commande *connect* en indiquant le nom d'un compte.

sqlplus /nolog
SQL> connect /as sysdba
Connected.


1.2. Comment exécuter des commandes systèmes sous oracle ?
On utilise host suivi de la syntaxe de l'os

Voici quelques exemples sous Windows:

SQL> host pwd
C:\oraclexe

SQL> host dir
 Le volume dans le lecteur C n’a pas de nom.
 Le numéro de série du volume est 785C-06ED

 Répertoire de C:\oraclexe

21/01/2013  13:23              .
21/01/2013  13:23              ..
21/01/2013  13:23              app
               0 fichier(s)                0 octets
               3 Rép(s)  59 588 644 864 octets libres

On aurait de meme sous linux:

SQL> host ls -l
total 0
drwxrwxrwx   1 user     group           0 Jan 21 13:23 app


1.3. Est-ce-que je peux entrer une commande sur plusieurs lignes ?
Bien sur, il suffit d'entrez un RETURN pour passer à la ligne. Le ; permettra de lancer l'évaluation de la commande.
SQL>  select name,value
  2  from v$parameter
  3  where name like '%block%';


1.4. Comment utiliser les commandes d'édition du buffer sql ?
Lorsqu'on est en mode sqlplus on a accès aux commandes d'édition du buffer résumées dans le tableau suivant:
APPEND texte A texte ajoute texte à la fin de la ligne courante
CHANGE /ancien/nouveau/ C /ancien/nouveau/ change texte ancien en texte nouveau dans la ligne courante
CHANGE /texte C /texte supprime texte dans la ligne courante
DEL supprime la ligne courante
INPUT I entre en saisie de lignes supplémentaires
INPUT texte I texte ajoute texte au buffer
LIST L visualise toutes les lignes
LIST n L n visualise la ligne n° n
LIST L visualise la ligne courante
LIST LAST L LAST visualise la dernière ligne
LIST m n L m n visualise les lignes m à n
CLEAR BUFFER CL BUFF vide le buffer
Exemple d'utilisation:
SQL> list
  1   select name,value
  2  from v$parameter
  3* where name like '%block%'
SQL> l 2
  2* from v$parameter
SQL> l
  1   select name,value
  2  from v$parameter
  3* where name like '%block%'
SQL> c /like/LIKE/
  3* where name LIKE '%block%'


1.5. comment sauver et restaurer le buffer de commandes?
Les commandes sont save et get. save va créer un fichier avec une extension .sql. get le recharge.
SQL> host cat cmd.sql
 select name,value
from v$parameter
where name like '%block%'
/
SQL> save cmd
Created file cmd.sql
 SQL> get cmd
  1   select name,value
  2  from v$parameter
  3* where name like '%block%'


1.6. comment exécuter le contenu du buffer de commandes?
C'est simple. On utilise run.

1.7. comment sortir de sqlplus?
SQL> exit
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production



2. dictionnaire de donnees

2.1. comment lister le contenu du dictionnaire?
SQL> select * from dictionary;

On peut être plus selectif dans sa requête.

SQL> select * from dictionary where table_name like 'USER%SEQ%';

TABLE_NAME
------------------------------
COMMENTS
--------------------------------------------------------------------------------

USER_SEQUENCES
Description of the user's own SEQUENCEs


SQL> select column_name,comments from dict_columns where table_name ='USER_SEQUE
NCES';

COLUMN_NAME
------------------------------
COMMENTS
--------------------------------------------------------------------------------

SEQUENCE_NAME
SEQUENCE name

MIN_VALUE
Minimum value of the sequence

MAX_VALUE
Maximum value of the sequence

INCREMENT_BY
Value by which sequence is incremented

CYCLE_FLAG
Does sequence wrap around on reaching limit?

ORDER_FLAG
Are sequence numbers generated in order?


CACHE_SIZE
Number of sequence numbers to cache

LAST_NUMBER
Last sequence number written to disk


8 rows selected.


2.2. comment afficher les vues dynamiques de performance?
Les vues dynamiques sont préfixées par v$.
SQL> select name,value from v$parameter where name like '%block%';

NAME
--------------------------------------------------------------------------------

VALUE
--------------------------------------------------------------------------------

db_block_buffers
0

db_block_checksum
TYPICAL

db_block_size
8192


db_file_multiblock_read_count
128

db_block_checking
FALSE



3. edition

3.1. comment envoyer le résultat d'une requête dans un fichier.
Il faut taper spool nom du fichier.puis la requête. La commande *spool off* arrête l'enregistrement dans un fichier.
SQL> spool resultat.txt
SQL> select name,value,display_value from v$parameter where name in ('sga_target','sga_max_size','memory_target','memory_max_target');

NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
DISPLAY_VALUE
--------------------------------------------------------------------------------
sga_max_size
536870912
512M

sga_target
0
0

NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
DISPLAY_VALUE
--------------------------------------------------------------------------------

memory_target
796917760
760M

memory_max_target
796917760


3.2. comment supprimer les headers de l'affichage?
On utilise la commande *set heading off*.
SQL> set heading off
SQL> select name,value,display_value from v$parameter where name in ('sga_target
','sga_max_size','memory_target','memory_max_target');

sga_max_size
536870912
512M

sga_target
0
0

memory_target
796917760
760M

memory_max_target

796917760
760M



4. tables

4.1. comment créer une table?
SQL> create table piece(n number(3),designation char(20),prix number(5,2));

Table created.


4.2. comment ajouter un élément dans une table ?
SQL> insert into piece values (1,'fenetre pvc',700.00); 1 row created. SQL> insert into piece values (2,'porte pvc blanc',950.60); 1 row created.

4.3. Comment lister les éléments d'une table ?
SQL> select * from piece ;

         N DESIGNATION                PRIX
---------- -------------------- ----------
         1 fenetre pvc                 700
         2 porte pvc blanc           950,6


4.4. comment séléctionner les éléments en fonction de critères ?
SQL> select* from piece where prix >800;

         N DESIGNATION                PRIX
---------- -------------------- ----------
         2 porte pvc blanc           950,6


4.5. comment renomer une table?
SQL> rename piece to pieces;

Table renamed.