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

SGBD Perl Discussion :

[DBI][ORACLE] Ordre COPY


Sujet :

SGBD Perl

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [DBI][ORACLE] Ordre COPY
    Bonjour,

    Je souhaite faire une copie de données d'une base de données Oracle vers une autre base de données Oracle.

    Voici mon code :
    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
    use DBI;
    use DBD::Oracle;
     
    my $dbh = DBI->connect('dbi:Oracle:', "login@base2", "mdp",{ RaiseError => 1, AutoCommit => 0 });
     
    my $query = "COPY FROM login/mmdp@base1 TO login/mdp@base2 INSERT MA_TABLE(id_table,nom_table) USING SELECT c.id_table,c.nom_table FROM AUTRE_TABLE";
     
    my $selectTab = $dbh->prepare($query);
    $selectTab->execute;
     
    if ($@)
    {
      $selectTab->finish;
      system("printErreur \"$erreur => ORA-".DBI::err." ...\"");
      $dbh->disconnect;    
    }
    else
    {
      $selectTab->finish;  
      $dbh->disconnect;
    }
    Mais malheureusement le programme me renvoie une erreur Oracle :
    DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute)

    J'ai lancé le COPY directement via sqlplus et cela fonctionne très bien.

    Il y a-t-il une commande particulière à faire en PERL ?

    Merci d'avance pour vos réponses.

  2. #2
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Après de nombreuses recherches, voici la réponse :
    "un ordre COPY ne peut se faire que sur SQL*Plus" ...

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Avril 2008
    Messages : 74
    Points : 68
    Points
    68
    Par défaut
    y a t il quelqu'un qui peut me dire ou est l'erreur dans cette requette :

    copy from system/nix@nix to system/aqsa2@aqsa2
    create table versement2_copy (num_transaction,montant,versement_date,num_compte)
    using select v.num_transaction,v.montant,v.versement_date,v.num_compte from versement v,clients c,agence a, ville vwhere v.num_compte=c.num_compte and c.num_agence=a.num_agence and a.code_ville=v.code_ville and code_region='2';

    je l'ai mise dans une seule ligne pour eviter toutes erreurs syntaxiques mais ya toujours cette erreur qui apparaisse apres l'execution :
    SP2-0498: Liste de colonnes entre parenthèses ou mot-clé USING absent . et merci d'avance

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

Discussions similaires

  1. [DBI:Oracle] UNKNOWN OCI STATUS 1804
    Par apersonnat dans le forum SGBD
    Réponses: 1
    Dernier message: 07/04/2009, 15h09
  2. Réponses: 6
    Dernier message: 22/03/2008, 08h16
  3. [Oracle ordre DDL en PL/SQL]
    Par tesla dans le forum SQL
    Réponses: 7
    Dernier message: 05/10/2006, 16h13
  4. [Oracle] Ordre d'affichage de lignes d'une requête
    Par duboisfa dans le forum Langage SQL
    Réponses: 14
    Dernier message: 27/02/2006, 19h05
  5. [Oracle XE] Copie d'un schéma dans un autre
    Par rozwel dans le forum Oracle
    Réponses: 8
    Dernier message: 19/12/2005, 19h20

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