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

Erreur ORA-00972: identifier is too long quand exécuté via Sql*Plus


Sujet :

Sql*Plus Oracle

  1. #1
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut Erreur ORA-00972: identifier is too long quand exécuté via Sql*Plus
    Bonjour,

    Nous essayons d'exécuter une série de scripts SQL via Sql*Plus et nous rencontrons l'erreur ORA-00972: identifier is too long , alors que sous SQL Developper le script s'execute sans erreur.

    Les script de commande :

    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
    cls
    @echo off
     
    set ID_SCRIPTS=LOT3
    set LOG_FILE=%ID_SCRIPTS%_scripts_%3.log
     
    set ORACLE_HOME=C:\sharedapps\RT\N881732b
    set TNS_ADMIN=C:\sharedapps\RT\OraConf
    set PATH=%ORACLE_HOME%\BIN;%PATH%
    set NLS_LANG=AMERICAN_FRANCE.WE8ISO8859P1
     
    if "%1" == "" goto usage_global
    if "%2" == "" goto usage_global
    if "%3" == "" goto usage_global
     
    echo > %LOG_FILE%
    echo ====================================== >> %LOG_FILE%
    echo == Run %ID_SCRIPTS%_scripts.sql             == >> %LOG_FILE%
    echo ====================================== >> %LOG_FILE%
    SQLPLUS -s %1/%2@%3 @%ID_SCRIPTS%_scripts.sql  >> %LOG_FILE%
    echo ====================================== >> %LOG_FILE%
    echo == Fin %ID_SCRIPTS%_scripts.sql             == >> %LOG_FILE%
    echo ====================================== >> %LOG_FILE%
     
    goto fin_global
    :usage_global
    echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo º USAGE : %ID_SCRIPTS%_exec_sql.bat login pwd instance º
    echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    :fin_global
    echo ÉÍÍÍÍÍÍÍÍÍ»
    echo º THE END º
    echo ÈÍÍÍÍÍÍÍÍͼ
    pause
    La liste des scripts SQL à exécuter :

    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
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    set echo on
    set define off
     
    prompt
    prompt ============== RUN LOT3-database_schema.sql -;
    prompt
    @./ddl/obj/LOT3-database_schema.sql
     
    prompt
    prompt ============== RUN LOT3_BG_dml.sql -;
    prompt
    @./dml/obj/LOT3_BG_dml.sql
     
    prompt
    prompt ============== RUN LOT3_CS_dml.sql -;
    prompt
    @./dml/obj/LOT3_CS_dml.sql
     
    prompt
    prompt ============== RUN LOT3_DA_dml.sql -;
    prompt
    @./dml/obj/LOT3_DA_dml.sql
     
    prompt
    prompt ============== RUN LOT3_DE_dml.sql -;
    prompt
    @./dml/obj/LOT3_DE_dml.sql
     
    prompt
    prompt ============== RUN LOT3_EL_dml.sql -;
    prompt
    @./dml/obj/LOT3_EL_dml.sql
     
    prompt
    prompt ============== RUN LOT3_EN_dml.sql -;
    prompt
    @./dml/obj/LOT3_EN_dml.sql
     
    prompt
    prompt ============== RUN LOT3_ES_dml.sql -;
    prompt
    @./dml/obj/LOT3_ES_dml.sql
     
    prompt
    prompt ============== RUN LOT3_ET_dml.sql -;
    prompt
    @./dml/obj/LOT3_ET_dml.sql
     
    prompt
    prompt ============== RUN LOT3_FI_dml.sql -;
    prompt
    @./dml/obj/LOT3_FI_dml.sql
     
    prompt
    prompt ============== RUN LOT3_HU_dml.sql -;
    prompt
    @./dml/obj/LOT3_HU_dml.sql
     
    prompt
    prompt ============== RUN LOT3_IT_dml.sql -;
    prompt
    @./dml/obj/LOT3_IT_dml.sql
     
    prompt
    prompt ============== RUN LOT3_LT_dml.sql -;
    prompt
    @./dml/obj/LOT3_LT_dml.sql
     
    prompt
    prompt ============== RUN LOT3_LV_dml.sql -;
    prompt
    @./dml/obj/LOT3_LV_dml.sql
     
    prompt
    prompt ============== RUN LOT3_MT_dml.sql -;
    prompt
    @./dml/obj/LOT3_MT_dml.sql
     
    prompt
    prompt ============== RUN LOT3_NL_dml.sql -;
    prompt
    @./dml/obj/LOT3_NL_dml.sql
     
    prompt
    prompt ============== RUN LOT3_PL_dml.sql -;
    prompt
    @./dml/obj/LOT3_PL_dml.sql
     
    prompt
    prompt ============== RUN LOT3_PT_dml.sql -;
    prompt
    @./dml/obj/LOT3_PT_dml.sql
     
    prompt
    prompt ============== RUN LOT3_RO_dml.sql -;
    prompt
    @./dml/obj/LOT3_RO_dml.sql
     
    prompt
    prompt ============== RUN LOT3_SK_dml.sql -;
    prompt
    @./dml/obj/LOT3_SK_dml.sql
     
    prompt
    prompt ============== RUN LOT3_SL_dml.sql -;
    prompt
    @./dml/obj/LOT3_SL_dml.sql
     
    prompt
    prompt ============== RUN LOT3_SV_dml.sql -;
    prompt
    @./dml/obj/LOT3_SV_dml.sql
     
    prompt
    prompt ============== RUN LOT3-phrases_dml.sql -;
    prompt
    @./dml/obj/LOT3-phrases_dml.sql
     
    prompt
    prompt ============== RUN LOT3-populate.sql -;
    prompt
    @./dml/obj/LOT3-populate.sql
     
    show errors;
    set term on
     
    exit;
    Le script LOT3_BG_dml.sql qui pose pb :

    Code sql : 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
     
     
    DECLARE
     
    VAR_SEQ_THE NUMBER(9,0);
    VAR_SEQ_AFF NUMBER(9,0);
    VAR_SEQ_NIV NUMBER(9,0);
    VAR_SEQ_REC NUMBER(9,0);
     
    BEGIN
    -- Excel Row N° 1
    select UL_ADM.SEQ_THE.nextval into VAR_SEQ_THE from dual;
     
    INSERT INTO ula_thesaurus (uls_the, ulcc_the_dom_code, uli_the_id, ulcc_lge_code, uli_the_ordre, uld_the_date_cre, uld_the_date_maj, ulc_the_desc, ulc_the_desc_trans, ulc_the_status ) VALUES (VAR_SEQ_THE, 'PHR', 1, 'BG', 1, sysdate(), sysdate(), 'Selon une jurisprudence constante, le risque de confusion quant à l’origine commerciale des produits ou des services doit être apprécié globalement selon la perception que le public pertinent a des signes et des produits ou services en cause et en tenant compte de tous les facteurs caractérisant le cas d’espèce, notamment de l’interdépendance entre la similitude des signes et celle des produits ou services désignés [voir arrêt du Tribunal du 9 juillet 2003, Laboratorios RTB/OHMI – Giorgio Beverly Hills (GIORGIO BEVERLY HILLS), T-162/01, non encore publié au Recueil, points 29 à 33, et la jurisprudence citée].', UL_F_TRANSLIT('Според същата съдебна практика вероятността от объркване трябва да се преценява цялостно, според възприятието на     - 
    съответните потребители за знаците и разглежданите стоки или услуги и като се отчитат всички релевантни в конкретния случай фактори, по-специално за взаимозависимостта между сходството на знаците и това на обозначените стоки или услуги (вж. Решение на Първоинстанционния съд от 9 юли 2003 г. по дело Laboratorios RTB/СХВП — Giorgio Beverly Hills (GIORGIO BEVERLY HILLS), T 162/01, Recueil, стр. II 2821, точки 31—33 и цитираната съдебна практика).'), 'Vide');
    INSERT INTO ula_domaine_jur (uls_the, ulcc_dom_code, ulcc_sdm_code) VALUES (VAR_SEQ_THE, 'PROP_INT', 'PROP_INT_T');
     
    select UL_ADM.SEQ_AFF.nextval into VAR_SEQ_AFF from dual;
     
    INSERT INTO ula_affaires (uls_aff, ulc_aff_num, ulc_aff_jrd,uli_aff_ordre, uli_aff_annee, ulc_aff_doc_type) VALUES (VAR_SEQ_AFF, 'T-0115/03', 'T',115, 3, 'Arrêt');
    INSERT INTO ulj_the_aff (uls_the, uls_aff, uli_num_suivi) VALUES (VAR_SEQ_THE, VAR_SEQ_AFF, 200403895);
     
    select UL_ADM.SEQ_NIV.nextval into VAR_SEQ_NIV from dual;
     
    INSERT INTO ula_niveaux (uls_niv, uls_the, uls_aff, ulc_niv_origine, uli_niv_niveau,uli_niv_parag) VALUES (VAR_SEQ_NIV, VAR_SEQ_THE, VAR_SEQ_AFF, 'MOTIF', 0,29);
     
    select UL_ADM.SEQ_REC.nextval into VAR_SEQ_REC from dual;
    INSERT INTO ula_recueil (uls_rec, uls_aff, ulc_rec_fasc, uli_aff_rec_annee ) VALUES (VAR_SEQ_REC, VAR_SEQ_AFF, '7', 2004 );
     
    select UL_ADM.SEQ_AFF.nextval into VAR_SEQ_AFF from dual;
     
    INSERT INTO ula_affaires (uls_aff, ulc_aff_num, ulc_aff_jrd,uli_aff_ordre, uli_aff_annee, ulc_aff_doc_type) VALUES (VAR_SEQ_AFF, 'T-0115/03', 'T',115, 3, 'Arrêt');
    INSERT INTO ulj_the_aff (uls_the, uls_aff, uli_num_suivi) VALUES (VAR_SEQ_THE, VAR_SEQ_AFF, 200403895);
     
    select UL_ADM.SEQ_NIV.nextval into VAR_SEQ_NIV from dual;
     
    INSERT INTO ula_niveaux (uls_niv, uls_the, uls_aff, ulc_niv_origine, uli_niv_niveau,uli_niv_parag) VALUES (VAR_SEQ_NIV, VAR_SEQ_THE, VAR_SEQ_AFF, 'MOTIF', 0,29);
     
    select UL_ADM.SEQ_REC.nextval into VAR_SEQ_REC from dual;
    INSERT INTO ula_recueil (uls_rec, uls_aff, ulc_rec_fasc, uli_aff_rec_annee ) VALUES (VAR_SEQ_REC, VAR_SEQ_AFF, '0', null );
     
    END;

    et l'erreur dans le log à l'exécution du fichier de commandes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    ============== RUN LOT3_BG_dml.sql -
     
    ERROR:
    ORA-00972: identifier is too long
     
    ...
    Quand on colle le contenu du fichier LOT3_BG_dml.sql dans une feuille de calcul SQL Developper le bloc anonyme s'exécute normalement.

    Des idées ? des pistes ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Peut-être qu'il faut mettre toute la chaîne qui est dans la fonction sur la même ligne.

  3. #3
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    En fait, on utilise le trait d'union - et un retour ligne afin de limiter la taille des lignes car sinon sous Sql*Plus on avait l'erreur suivante :

    SP2-0027: Input is too long (> 2499 characters) - line ignored

    D'autres idées ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 31
    Points
    31
    Par défaut
    Le message oracle dit ceci:

    "You tried to reference a table, cluster, view, index, synonym, tablespace, or username with a value that was longer than 30 characters."

    En regardant rapidement le code fourni... je me dis qu'il n'y a pas de variable trop longue.

    Donc... par déduction... je suppose que c'est la chaîne ultra longue qui pose problème.

    Pour vérifier: exécuter le même script en réduisant la taille de la chaîne.
    Si cela marche... déjà on a identifier avec certitude la source du problème.

    Une idée qui me vient... mais j'ai pas testé... serait de mettre au préalable la chaîne dans une variable et de passer la variable en paramètre.

    Si cela ne marche toujours pas... tenter des concaténations de la chaîne.
    Il se pourrait aussi que la chaîne contienne un caractère bizarre...
    Dans tous les cas... travailler par dichotomie... pour trouver l'origine du problème.

    Bon courage.

    La résolution du problème m'intéresse.

    @+

  5. #5
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Je viens de solutionner mon pb en ajoutant à la fin du fichier LOT3_BG_dml.sql :

    Maintenant j'ai d'autres soucis mais celui ci est ok.

    Merci pour votre aide, bonne journée.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 36
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par elitost Voir le message
    Je viens de solutionner mon pb en ajoutant à la fin du fichier LOT3_BG_dml.sql :

    Maintenant j'ai d'autres soucis mais celui ci est ok.

    Merci pour votre aide, bonne journée.
    pffff... c'est même pas drôle... une erreur de synthaxe.

    Bien vu

    @+

  7. #7
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    désolé

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

Discussions similaires

  1. Erreur: 1071 Specified key was too long
    Par Alcius dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/12/2010, 17h11
  2. ORA-00972: identifier is too long
    Par khomar dans le forum SQL
    Réponses: 4
    Dernier message: 16/02/2010, 16h05
  3. Contourner ORA-00972: identifier is too long ?
    Par radzar dans le forum SQL
    Réponses: 2
    Dernier message: 12/03/2009, 15h40
  4. Erreur ORA-00972: l'identificateur est trop long
    Par elekis dans le forum Administration
    Réponses: 5
    Dernier message: 18/04/2008, 10h45
  5. Erreur Data too long For column
    Par fabrice.77 dans le forum Débuter
    Réponses: 12
    Dernier message: 12/02/2007, 10h19

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