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

SQL Procédural MySQL Discussion :

migration de PL/SQL vers MYSQL


Sujet :

SQL Procédural MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut migration de PL/SQL vers MYSQL
    bonjour ,

    d'abord je tiens a vous remerciez pour vos efforts considérables pour nous aider , et vraiment c'est un honneur de poster ici .

    je suis entrain de migrer une base de donnée oracle vers MYSQL ( je suis debutant dans les deux ) et je travail maintenant sur les procédures stockés. bon disant que j'ai trouvé les solution pour migrer quelques procédures développées en PL/ SQL vers MYSQL mais j'ai tombé sur quelques obstacle que j'arrive pas a les surpasser et j'aime bien si vous pouvez m'aider sur le problème suivant :

    * j'ai pas réussi a trouvez la solution pour migrer la procedure suivante de PL/SQL ver mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    create or replace procedure WORKS_DAU_I_PRC(p_W_VALUES   IN VARCHAR2 ) as
    V_WORKS_ID integer;
    V_WELL_SCHEMA Varchar2(30):= well_loggin;
    begin
    if V_WELL_SCHEMA is not null then
      EXECUTE IMMEDIATE 'select '||V_WELL_SCHEMA||'.S_WORKS_DAU.NEXTVAL  from dual' INTO V_WORKS_ID;
      EXECUTE IMMEDIATE 'insert into '||V_WELL_SCHEMA||'.WORKS_DAU
        (working_id,W_VALUES)
      values (:1,:2)' using V_WORKS_ID,p_W_VALUES ;
    end if;
    commit;
    end;
    généralement j'utilise " PREPARE etat et EXECUTE etat" pour remplacer EXECUTE IMMEDIATE (cas de la requette insert dans ce code ) , mais pour ce cas j'ai pas trouvez la solution pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE IMMEDIATE 'select '||V_WELL_SCHEMA||'.S_WORKS_DAU.NEXTVAL  from dual' INTO V_WORKS_ID;
    Merci d'avance

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    si c'est l'insertion des variable dans la chaine, tu fait un concat, tu stockes son résultat dans une variable genre truc:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    @truc=concat('select ',V_WELL_SCHEMA,'.S_WORKS_DAU.NEXTVAL  INTO @V_WORKS_ID from dual');
    prepare exe from @truc;
    execute exe;
    deallocate prepare exe;
    ...

    par contre tu dois déclarer V_WORKS_ID comme globale à ta session (avec un @) car tu ne peux manipuler que des variables globale avec une requête préparée...
    le into est toujours avant le from en mysql...
    tu ne peux pas mettre le concat directement dans le prepare from...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    salut cher ericd69 ,

    merci pour votre aide . je vais essayer avec votre proposition sauf que je vais affecter V_WORKS_ID a un variable globale pour l'utiliser avec la requette preparé.

    merci encore

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    bonsoir ,
    le problème est résolu merci beaucoup pour votre aide .

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

Discussions similaires

  1. migration une bd access vers mysql avec talend
    Par soufiane10 dans le forum Migration
    Réponses: 4
    Dernier message: 18/06/2009, 16h22
  2. Migration de base oracle vers mysql avec Perl
    Par kasnej dans le forum SGBD
    Réponses: 0
    Dernier message: 01/11/2007, 13h24
  3. Réponses: 8
    Dernier message: 22/03/2007, 11h38
  4. [WD55] Migration des données HF vers MySQL ou Access
    Par developper2006 dans le forum WinDev
    Réponses: 1
    Dernier message: 21/02/2007, 13h31
  5. Cpy Table de SQL vers mySql
    Par nutix2003 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/12/2006, 13h59

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