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*Loader Oracle Discussion :

Erreur (ORA-01006 La variable attache n'existe pas) suite à changement de serveur [12c]


Sujet :

SQL*Loader Oracle

  1. #1
    Membre habitué
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Points : 189
    Points
    189
    Par défaut Erreur (ORA-01006 La variable attache n'existe pas) suite à changement de serveur
    Bonjour,

    Suite à un switch dataguard, j'ai un script d'import utilisant sql*loader qui ne fonctionne plus avec l'erreur ORA-01006 La variable attache n'existe pas

    si je fais le test sur mon serveur de test cela fonctionne mais plus sur le serveur de production.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Table d'import 
    create table OCAPISIGDCI.dvp3_loader  ( id number , nom varchar2(20) , salaire number ) ;
     
    Sequence pour le champ ID 
     
    CREATE SEQUENCE OCAPISIGDCI.dvp_seq 
    START WITH 1
    INCREMENT BY 1;
     
    fichier control 
     
    LOAD DATA INFILE 'data.csv'
    replace
    INTO TABLE dvp3_loader
    FIELDS TERMINATED BY ';' trailing nullcols
     (
    NOM,
    SALAIRE,
    ID "dvp_seq.nextval"
    )
     
    fichier data
     
    Jaouad;100
    orafrance;200
    leoanderson;300
    bouyao;400
     
    code lancement sql*loader 
     
    sqlldr user/mdp@tns control=control.txt log=log.txt bad=bad.txt discard=disard.txt errors=0 direct=n
    Si j'utilise le direct=y cela s'importe mais sans la séquence ce qui est normal pour l'utilisation du direct=n

    Je pense que cela viendrait d'un privilège manquant du nouveau serveur de production.

    Le serveur lancant sql*loader et le serveur de base de données sont dans le même lieu réseau et n'ont pas de limitation réseau.

    Si vous avez des idées.

    Merci

  2. #2
    Membre habitué
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Points : 189
    Points
    189
    Par défaut
    avec la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlldr user/mdp@tns control=control.txt log=log.txt bad=bad.txt discard=disard.txt errors=0 external_table=execute
    Je récupère l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQL*Loader-807 : erreur lors du chargement de la table
    ORA-29913: erreur d'ex▒cution de l'appel ODCIEXTTABLEOPEN
    ORA-29400: erreur de cartouche de donn▒es
    KUP-04001: erreur lors de l'ouverture du fichier /home/batch/test/log.txt_xt
    voici le fichier de log

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
     
    SQL*Loader: Release 19.0.0.0.0 - Production on Mer. Nov. 9 17:46:24 2022
    Version 19.3.0.0.0
     
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
     
    Fichier de contrôle :   control.txt
    Fichier de données :      data.csv
      Fichier des enregistrements refusés :     bad.txt
      Fichier de rebut : disard.txt
     (Allouer tous les rebuts)
     
    Nombre à charger : ALL
    Nombre à ignorer : 0
    Erreurs autorisés : 0
    Continuation :    aucune spécification
    Chemin utilisé:      Table externe
     
    Table DVP3_LOADER, chargé à partir de chaque enregistrement physique.
    Option d'insertion en vigueur pour cette table : REPLACE
    option TRAILING NULLCOLS effective
     
       Nom de colonne                  Position   Long  Type de données encadr.
    ------------------------------ ---------- ----- ---- ---- ---------------------
    NOM                                 FIRST     *   ;       CHARACTER
    SALAIRE                              NEXT     *   ;       CHARACTER
    ID                                   NEXT     *   ;       CHARACTER
        chaîne SQL pour la colonne : "dvp_seq.nextval"
     
    objet de répertoire temporaire SYS_SQLLDR_XT_TMPDIR_00000 créé pour le chemin /home/batch/test
     
    création de la table externe "SYS_SQLLDR_X_EXT_DVP3_LOADER"
     
    CREATE TABLE "SYS_SQLLDR_X_EXT_DVP3_LOADER"
    (
      "NOM" VARCHAR2(20),
      "SALAIRE" NUMBER,
      "ID" VARCHAR2(255)
    )
    ORGANIZATION external
    (
      TYPE oracle_loader
      DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000
      ACCESS PARAMETERS
      (
        RECORDS DELIMITED BY NEWLINE CHARACTERSET WE8ISO8859P15
        BADFILE 'SYS_SQLLDR_XT_TMPDIR_00000':'bad.txt'
        DISCARDFILE 'SYS_SQLLDR_XT_TMPDIR_00000':'disard.txt'
        LOGFILE 'log.txt_xt'
        READSIZE 1048576
        FIELDS TERMINATED BY ";" LDRTRIM
        MISSING FIELD VALUES ARE NULL
        REJECT ROWS WITH ALL NULL FIELDS
        (
          "NOM" CHAR(255)
            TERMINATED BY ";",
          "SALAIRE" CHAR(255)
            TERMINATED BY ";",
          "ID" CHAR(255)
            TERMINATED BY ";"
        )
     )
      location
      (
        'data.csv'
      )
    )REJECT LIMIT UNLIMITED
     
    exécution de l'instruction INSERT pour le chargement de la table de base de données DVP3_LOADER
     
    INSERT /*+ append */ INTO DVP3_LOADER
    (
      NOM,
      SALAIRE,
      ID
    )
    SELECT
      "NOM",
      "SALAIRE",
      dvp_seq.nextval
    FROM "SYS_SQLLDR_X_EXT_DVP3_LOADER"
    SQL*Loader-807 : erreur lors du chargement de la table
    ORA-29913: erreur d'exécution de l'appel ODCIEXTTABLEOPEN
    ORA-29400: erreur de cartouche de données
    KUP-04001: erreur lors de l'ouverture du fichier /home/batch/test/log.txt_xt
     
     
    suppression de la table externe "SYS_SQLLDR_X_EXT_DVP3_LOADER"
     
    Table DVP3_LOADER :
      Chargement de 0 Lignes effectué.
     
    Le début de l'exécution a été effectué sur Mer. Nov.  09 17:46:24 2022
    La fin de l'exécution a été effectuée sur Mer. Nov.  09 17:46:24 2022
     
    Temps écoulé (ELAPSED) :     00:00:00.18
    Temps processeur (CPU) :    00:00:00.03
    Pour moi le soucis semble venir de l'accès externe au fichier data depuis le nouveau serveur mais je ne vois pas /comprend pas comment cet accès est réalisé

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 960
    Points : 4 390
    Points
    4 390
    Par défaut
    Vérifiez dans dba_directories et dba_external_locations entre les 2 serveurs,
    Il y a sans doute une configuration qui n'a pas été migrée.


  4. #4
    Membre habitué
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    Il ni a rien dans les dba_directories et dba_external_locations.

    Si je fais la création du directory manuellement et de la table externe , lors du select de celle-ci je récupère l'erreur :

    ERREUR ▒ la ligne 1 :
    ORA-29913: erreur d'ex▒cution de l'appel ODCIEXTTABLEOPEN
    ORA-29400: erreur de cartouche de donn▒es
    KUP-04001: erreur lors de l'ouverture du fichier /home/batch/test/log.txt_xt

  5. #5
    Membre habitué
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Points : 189
    Points
    189
    Par défaut
    Bon j'ai trouvé il semble qu'il manquait l'ajout du quota sur la tablespace USERS

    une fois ajouté cela fonctionne

  6. #6
    Membre habitué
    Avatar de jolatouf
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 170
    Points : 189
    Points
    189
    Par défaut
    Bon finalement cela n'a pas tenu.

    Donc j'ai modifié le fichier de control pour ne pas utliser une séquence
    Modifié la table pour utiliser un champ Identitiy (Auto Increment)
    Et mis le chargement en direct=y

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/07/2016, 15h12
  2. Pas d'erreur avec UPDATE si un champ n'existe pas !
    Par poiwalt dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/01/2009, 16h32
  3. [Oracle 9i] erreur ORA-01006 quand la variable
    Par manhattan.project dans le forum SQL
    Réponses: 4
    Dernier message: 29/05/2008, 15h35
  4. Erreur générée par un formulaire qui n'existe pas
    Par Miss Ti dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/02/2008, 10h39

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