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 :

Foreign table Oracle : delete - update [9.3]


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 27
    Points
    27
    Par défaut Foreign table Oracle : delete - update
    Bonjour,

    Dans Postgresql, j'ai créé une foreign table d'une base de données Oracle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE foreign TABLE dh_mig_exec_ent
        (lien_detail                    numeric(10,0) ,
        nom_package                    character varying(100),
        pgm                            character varying(100),
        nbr_param                      numeric(2,0),
        statut                         character varying(10),
        resultat                       character varying(4000),
        retour_fonction                character varying(4000),
        erreur                         character varying(4000))
        server dseabird options (schema 'SB' , table 'DH_MIG_EXEC_ENT')
    Pas de problème quand je fais un INSERT.

    Par contre, quand je veux faire un delete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delete from dh_mig_exec_ent where lien_detail=3
    j'ai des messages d'erreurs :
    ERROR: no primary key column specified for foreign Oracle table
    DETAIL: For UPDATE or DELETE, at least one foreign table column must be marked as primary key column.
    HINT: Set the option "key" on the columns that belong to the primary key.
    ********** Error **********
    Quelqu'un aurait-il une idée ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Bien que je n'utilise pas PostgreSQL régulièrement, il me semble que le message est clair : il est indispensble que la table comporte une clé primaire, même si c'est une table externe.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 27
    Points
    27
    Par défaut
    La table Oracle a une primary key.

    La foreign table en postgresql n'en a pas et pour cause, je ne vois pas comment je peux le faire.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    L'information est à mentionner dans la liste des OPTIONS (primary_key = "maclef")
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 27
    Points
    27
    Par défaut
    voici la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE foreign TABLE dh_mig_exec_ent
        (lien_detail                    numeric(10,0) OPTIONS(key 'true'),
        nom_package                    character varying(100),
        pgm                            character varying(100),
        nbr_param                      numeric(2,0),
        statut                         character varying(10),
        resultat                       character varying(4000),
        retour_fonction                character varying(4000),
        erreur                         character varying(4000)
        )
        server dseabird options (schema 'SB' , table 'DH_MIG_EXEC_ENT'
        )
    Il suffit de mettre cette option sur tous les champs qui sont dans la primary key de la table Oracle.

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

Discussions similaires

  1. [DataSet] Update une table oracle dynamiquement
    Par Amuny dans le forum VB.NET
    Réponses: 6
    Dernier message: 10/05/2011, 18h24
  2. [AC-2003] problème update de table VBA vers table oracle
    Par valmelissa dans le forum VBA Access
    Réponses: 10
    Dernier message: 29/10/2009, 12h39
  3. Update sur une Table Oracle
    Par faressam dans le forum VBScript
    Réponses: 3
    Dernier message: 18/09/2008, 10h01
  4. UPDATE TABLE ORACLE
    Par Poisson59 dans le forum Oracle
    Réponses: 10
    Dernier message: 30/11/2005, 15h24
  5. supprimer un enregistrement vide dans une table oracle
    Par shurized dans le forum Bases de données
    Réponses: 11
    Dernier message: 07/09/2004, 16h55

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