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

PostgreSQL Discussion :

Problème de migration


Sujet :

PostgreSQL

  1. #1
    Membre habitué Avatar de champijulie
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 131
    Points
    131
    Par défaut Problème de migration
    J'effectue une migration de BD sous Oracle vers Postgre et j'ai rencontré deux soucis:
    1/ Comment transformer la gestion des erreurs avec l'option OTHER sous Oracle pour avoir le même résultat sous Postgre?
    2/ Savez-vous si les commandes storage et post existe sous Postgre? Si non, par quoi les remplacer?

    Merci d'avance de me répondre.
    Champijulie

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Peux tu nous donner plus de precision, genre un exemple.
    Je suppose que pour STORAGE tu parle des tablespaces, mais il me faudrait plus de précisions.
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  3. #3
    Membre habitué Avatar de champijulie
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 131
    Points
    131
    Par défaut
    Kikou,
    je m'explique:
    1// Je ne connais pas trop les fonctions sous Oracle et je ne trouve pas d'informations sur la fonction storage. Voici un exemple de déclaration de table sous Oracle utilisant cette fonction:
    -- Drop table ADSUtilisateur;
    Create table ADSUtilisateur
    (
    CodeADS varchar(2) not null,
    ProfilUtilisateur number(8) not null,
    DroitEcriture number(1) ,
    DroitLecture number(1)
    )
    storage (
    initial 100k
    next 10K
    pctincrease 0
    );
    Et j'aurais voulu savoir si il y avait un moyen d'avoir le même résultat sous Postgre car apparemment, elle n'existe pas.
    2// Dans les fonctions sous Oracle, il y a une gestion des erreurs dans le cas où ce sont des erreurs autres et on utilise other. Voici un exemple:
    begin
    Select id_erreur||':'||libelle
    Into libelle
    From erreur
    Where id_erreur = p_num;

    return(libelle);

    exception when others then libelle := p_num||':ERREUR INDEFINIE';
    return(libelle);
    end lire_erreur;
    Cela permet de gérer tous les cas d'erreur autres que le fait de ne pas trouver le résultat à la requête précédente. Le reste de la fonction à été transformé en PL/pgSQL mais dans des cas plus complexes que celui ci comme une exeption when Other apres une exeption when No_data_found, je ne sais pas comment transformer la fonction pour gérer les deux cas.

    J'espère que j'ai été suffisament précise mais si tu as besoin de plus de précision, n'hésite pas.
    champijulie.

  4. #4
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Bonjour,

    Pour le storage, en fait c'est une fonctionnalité qui n'existe pas (pour l'instant) dans pg, elle permet de definir la maniere dont le tablespace de l'user est initialisé et comment il evolura.

    Pour l'exception, il existe bien le test sur OTHERS, d'ailleurs tu l'a correctement ecrite dans ta procedure (et oui PG ressemble bcp a Oracle!).
    Pour gerer les differents cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    BEGIN
     ..du code ici..
    EXCEPTION
        WHEN NO_DATA OR DATA_EXCEPTION THEN   -- par exemple
            INSERT INTO ......;
        WHEN OTHERS THEN
              UPDATE .......;
    END;
    dans ton cas :
    Code : 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
     
    Create or replace function lire_erreur (integer) returns varchar AS
    $BODY$
    DECLARE
     p_num ALIAS FOR $1;
     libelle varchar(160);
     num integer;
    BEGIN
      --......ici du code non protégé
     BEGIN
      SELECT INTO num count(*) FROM erreur WHERE id_erreur=p_num;
     EXCEPTION
       WHEN SUCCESSFUL_COMPLETION THEN
        SELECT INTO libelle id_erreur||':'||libelle From erreur Where id_erreur = p_num;
       WHEN OTHERS THEN
          libelle := p_num||':ERREUR INDEFINIE';
     END;
     return libelle;
    END;
    $BODY$
    LANGUAGE 'plpgsql' VOLATILE;
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  5. #5
    Membre habitué Avatar de champijulie
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 131
    Points
    131
    Par défaut
    Merci beaucoup pour la gestion des erreurs.
    Tant pis pour la fonction storage.

    champijulie.

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 24/08/2006, 13h26
  2. [Eclipse WTP] Problème de migration
    Par SEMPERE Benjamin dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 17/02/2006, 21h30
  3. Réponses: 3
    Dernier message: 06/02/2006, 16h50
  4. [Vs2003] Problème de migration vs2002 à vs2003
    Par iDaaX dans le forum Visual Studio
    Réponses: 3
    Dernier message: 17/10/2005, 10h12
  5. Problème de migration d'application
    Par UVCR dans le forum XMLRAD
    Réponses: 5
    Dernier message: 04/10/2005, 10h45

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