====== Connexion aux bases de données pédagogiques Oracle ====== ===== Informations de connexion ===== ==== Identifiants de connexion ==== * **Etudiants:** Si vous avez besoin d'accéder à la base Oracle pour un TP, l'équipe enseignante vous fournira un identifiant de connexion (login) et un mot de passe((en général, le mot de passe est l'identifiant sont identiques à la création)). Votre identifiant sera parfois indiqué dans [[http://tomusss.univ-lyon1.fr|tomuss]]. * **Enseignants:** Demander un compte à Emmanuel Coquery ou Nicolas Lumineau. ==== Serveur ==== Le serveur Oracle fonctionne sur ''oracle710.univ-lyon1.fr'', le numéro de port pour les requêtes SQL est le ''1521''. Il y a 3 bases de données((en fait 3 instances)) qui fonctionnent sur ce serveur: ''orapeda1'', ''orapeda2'' et ''orapeda3''. Le nom d'une base est appelé ''SID'' dans le vocabulaire Oracle. ===== Comment se connecter à la base ===== ==== Via SQLDeveloper ==== Créer une nouvelle connexion en utilisant le bouton "+" vert. Le nom de connexion est libre; le nom d'utilisateur est votre identifiant de connexion Oracle; le nom d'hôte est ''oracle710.univ-lyon1.fr''((sauf dans le cas d'un accès depuis l'extérieur de l'UCBL)); SID est le nom de la base (ex: orapeda1): {{ :enseignement:aide:sqldevconfig.jpg |Configuration SQLDeveloper}} Une fois la connexion créée il suffit de double-cliquer dessus pour ouvrir un éditeur qui permettra d'exécuter les requêtes. ==== Via SQLPlus ==== Dans les salles de TP, l'application SQLPlus est préconfigurée. Il suffit de préciser le login, le mot de passe et le nom de la base de données. ==== Via JDBC dans un programme Java ==== Pour pouvoir se connecter, votre projet doit inclure le pilote JDBC Oracle (''ojdbc14.jar'', ''ojdbc5.jar'' ou ''ojdbc6.jar''). Exemple de code de connexion: OracleDataSource ods = new OracleDataSource(); // type de pilote oracle ods.setDriverType("thin"); // nom de la machine sur laquelle se trouve la base ods.setServerName("oracle710.univ-lyon1.fr"); // numero du port pour se connecter à la base ods.setPortNumber(1521); // nom de la base ods.setDatabaseName("orapeda1"); // Pour ouvrir une session (représentée par l'objet connect Connection connect = ods.getConnection("votrelogin","votremotdepasse"); // Travail sur la base // Ici, on écrira du code pour, par exemple, interroger la base // Ne pas oublier de fermer la session quand on a fini de manipuler la base connect.close(); On peut également utiliser un fichier de propriétés Java. Le code devient alors: OracleDataSource ods = new OracleDataSource(); // type de pilote oracle ods.setDriverType("thin"); // Chargement des paramètres de connexion depuis le fichier Properties cp = new Properties(); cp.load(new FileReader("/mon/chemin/mon_fichier.properties")); ods.setConnectionProperties(cp); // Pour ouvrir une session (représentée par l'objet connect Connection connect = ods.getConnection(); // Travail sur la base // Ici, on écrira du code pour, par exemple, interroger la base // Ne pas oublier de fermer la session quand on a fini de manipuler la base connect.close(); Le fichier ''/mon/chemin/mon_fichier.properties'' ressemblant à: user=votrelogin password=votremotdepasse server=oracle710.univ-lyon1.fr:1521:orapeda1 ====== Accès depuis l'extérieur de l'université ====== L'accès direct au serveur Oracle depuis l'extérieur du réseau de l'UCBL est impossible. L'accès direct est également impossible depuis les réseaux ''UCBL-Portail'' et ''eduspot'', mais possible depuis le réseau ''eduroam''. Pour se connecter depuis l'extérieur il est nécessaire d'utiliser un //tunnel SSH//. Voir l'[[enseignement:aide:ssh|aide sur les tunnels SSH]]. ===== Reconfiguration ===== Il suffit de remplacer ''oracle710.univ-lyon1.fr'' par ''localhost'' dans la configuration du client. Si vous utilisez SQLPlus((non recommandé sur une machine personnelle)), il peut être nécessaire de changer le fichier ''TNSNAMES.ORA''. ===== Problèmes de connexion ===== - Vérifier que vous utilisez votre login unix/UCBL dans Putty et votre login Oracle (e.g. fourni dans tomuss) dans SQLDeveloper. Si vous avez installé Oracle eXpress Edition, le TNSListener (Service Windows: OracleXETNSListener) occupe le port 1521 sur votre machine, il faut l'arrêter avant de lancer Putty. ====== Supprimer toutes les tables de son compte ====== Cette opération est définitive, à utiliser seulement si besoin Pour supprimer toutes les table de son compte, on peut utiliser le bloc PL/SQL suivant: BEGIN FOR t IN (SELECT * FROM USER_TABLES) LOOP EXECUTE IMMEDIATE 'DROP TABLE '||t.table_name||' CASCADE CONSTRAINTS'; END LOOP; END; /