IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Exécution de plusieurs requêtes SQL dans Oracle


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Par défaut Exécution de plusieurs requêtes SQL dans Oracle
    Bonjour tout le monde,

    J'ai un fichier .sql contenant plusieurs requêtes SQL du genre :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    CREATE TABLE T1_D (
      ID_D NUMBER(19)  NOT NULL    ,
      NUM_L SMALLINT  NOT NULL  ,
      NUM_S SMALLINT  NOT NULL  ,
      DATE_R TIMESTAMP  NOT NULL  ,
      CODE_P INTEGER  NOT NULL    ,
    PRIMARY KEY(ID_D));
     
    CREATE UNIQUE INDEX T1_F ON T1_F (NUM_L, KEY);
     
    CREATE SEQUENCE seq_T0_M
    START WITH 1
    MINVALUE 1
    NOCYCLE
    NOCACHE
    ORDER;
     
    CREATE OR REPLACE TRIGGER trg_T0_M
    BEFORE INSERT
    ON T0_M
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW 
    BEGIN
    SELECT seq_T0_M.nextval
    INTO :NEW.ID_M
    FROM DUAL;
    END;
    /
     
    CREATE OR REPLACE TRIGGER UPDATE_T1_E
    AFTER UPDATE ON T1_E
    BEGIN
    UPDATE T2_U SET ID_E = :new.ID_E
    Where ID_E = :old.ID_E;
    UPDATE T2_P SET ID_E = :new.ID_E
    Where ID_E = :old.ID_E;
    END;
    /

    Le fichier .sql fait un peu plus de 2000 lignes.

    Dois-je me pencher sur l'utilisation de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set serveroutput on
    DBMS_OUTPUT.PUT_LINE
    Ou il y a d'autres solutions ?



    Ps : j'utilise Oracle 11g Enterprise Edition

  2. #2
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Bonjour,

    Tu veux faire quoi excactement ...

    creer un fichier spool pour tracer ?

    affichier ce que tu fais ...

  3. #3
    Membre éclairé Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Par défaut
    Je dois migrer une base SQL Server 2005 en Oracle 11g.
    Pour cela, j'ai un fichier .sql avec la création de toutes les tables, et index de la base de données pour SQL Server 2005.

    J'ai fait un programme permettant d'adapter ce fichier là en un fichier pour Oracle (création des triggers et séquences pour gérer l'auto incrément, remplacement de certains types de données ...).

    Maintenant que j'ai ce fichier là, je voudrai l'exécuter dans Oracle pour que la structure de la base de données puisse être créée.

  4. #4
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Si tu a un fichier .sql, quelque soit sa taille

    il suffit de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlplus user/pass@alias @/chemin/fichier.sql
    maintenant pour avoir une trace

    tu peux ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     spool /chemin/fichier.txt
    avant les lignes de commande au debut de ton fichier

    et

    a la fin de ton fichier




    le dbms_output c'est pour le pl/sql

    ici le spool conviendra

  5. #5
    Membre éclairé Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Par défaut
    Merci bien, l'utilisation de Spool va bien m'aider vue le nom d'erreurs encore


  6. #6
    Membre éclairé Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Par défaut
    Quelle est la commande pour supprimer tout ce que je viens de créer ?
    Car à mon avis, il va falloir que je répète cette opération plusieurs fois lol

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Exécuter plusieurs requêtes SQL dans un script PHP ?
    Par Ludock dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/02/2015, 15h35
  2. exécution d'une requête SQL dans access
    Par skyarnangel dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/02/2009, 11h18
  3. [Data] [iBATIS] Plusieurs requêtes SQL dans un <statement> ?
    Par Tourix dans le forum Spring
    Réponses: 3
    Dernier message: 04/09/2006, 15h40
  4. Plusieurs requêts SQL dans un QReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 9
    Dernier message: 23/05/2006, 15h04
  5. [SQL] Traitement de plusieurs requêtes .SQL dans un script PHP?
    Par M4x dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/03/2006, 19h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo