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

PL/SQL Oracle Discussion :

SQL DYNAMIQUE ORA-02069


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 73
    Par défaut SQL DYNAMIQUE ORA-02069
    Bonjour à tous,
    dans un package PL/SQL, j'utilise du sql dynamique dont voici le 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
    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
    129
    130
    131
    132
      EXECUTE immediate  'INSERT into EXTRAC_REGL_' || BASE || '_GEN_NON_SOLD  (    
      select 
     AR_CASH_RECEIPTS_ALL.ORG_ID ID_SOC_JUR,
           HR_ALL_ORGANIZATION_UNITS.NAME SOC_JUR,
           AR_CASH_RECEIPTS_ALL.RECEIPT_NUMBER NUM_RGL,
           AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID ID_RGL,
           AR_CASH_RECEIPTS_ALL.DOC_SEQUENCE_VALUE NUM_DOC_RGL,
           to_char(AR_CASH_RECEIPTS_ALL.RECEIPT_DATE, ''DD-MM-YYYY'') DATE_RGL,
           to_char(AR_PAYMENT_SCHEDULES_ALL.DUE_DATE, ''DD-MM-YYYY'') DATE_ECH_RGL,
           DECODE(''' || PARAM_DATE_GL ||
                          ''',NULL,to_char(AR_CASH_RECEIPT_HISTORY_ALL.GL_DATE,''DD-MM-YYYY''),''' ||
                          to_char(to_date(to_char(PARAM_DATE_GL, 'DD-MON-YYYY'), 'DD-MON-YYYY'), 'DD-MM-YYYY') || ''') DATE_COMPTABLE,
           ' || PARAM_EXERCICE_INTEG || ' EXERCICE_INTEGR,
           AR_CASH_RECEIPTS_ALL.CURRENCY_CODE DEVIsE_RGL,
           HZ_CUST_ACCOUNTS.ACCOUNT_NUMBER CLIENT_COMPTABLE,
           HZ_CUST_SITE_USES_ALL.LOCATION CLIENT_FACTURE,
           AR_RECEIPT_METHODS.NAME MODE_PMT,
           AR_CASH_RECEIPTS_ALL.COMMENTS COMM_RGL,
           AP_BANK_BRANCHES.BANK_NUMBER CODE_BANQUE,
           AP_BANK_BRANCHES.BANK_NUM CODE_AG_BANQUE,
           AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM NUM_CPTE_BANQUE,
           substr(HZ_CUST_SITE_USES_ALL.LOCATION, 1, 3) CODE_AGENCE,
           decode(CC__SOCIETE.CD_CPTA_BASE,
                  1,
                  ''HOLDING'',
                  2,
                  ''EIDF'',
                  3,
                  ''ECEM'',
                  4,
                  ''ENE'',
                  5,
                  ''EMO'',
                  6,
                  ''ECO'') REGION,
    AR_CASH_RECEIPTS_ALL.AMOUNT MNT_RGL,
    a.MNT_LT_RGL,
    a.MNT_NLT_RGL,
    a.MNT_CPTE_RGL,
    a.MNT_NID_RGL
      from AR_CASH_RECEIPTS_ALL,
           GL_SETS_OF_BOOKS,
           CC__SOCIETE,
           HR_ALL_ORGANIZATION_UNITS,
           AR_PAYMENT_SCHEDULES_ALL,
           AR_RECEIPT_METHODS,
           AR_CASH_RECEIPT_HISTORY_ALL,
           HZ_CUST_ACCOUNTS,
           HZ_CUST_SITE_USES_ALL,
           AP_BANK_ACCOUNTS_ALL,
           AP_BANK_BRANCHES,
            (select    ARAA.Cash_Receipt_Id,   ltrim(to_char(sum(DECODE(ARAA.STATUS,
                                    ''APP'',
                                    DECODE(ARAA.CONFIRMED_FLAG,
                                           ''N'',
                                           0,
                                           NVL(NVL(ARAA.AMOUNT_APPLIED_FROM,
                                                   ARAA.AMOUNT_APPLIED),
                                               0)),
                                    ''ACTIVITY'',
                                    DECODE(ARAA.APPLIED_PAYMENT_SCHEDULE_ID,
                                           -2,
                                           NVL(NVL(ARAA.AMOUNT_APPLIED_FROM,
                                                   ARAA.AMOUNT_APPLIED),
                                               0),
                                           -3,
                                           NVL(NVL(ARAA.AMOUNT_APPLIED_FROM,
                                                   ARAA.AMOUNT_APPLIED),
                                               0),
                                           -5,
                                           NVL(NVL(ARAA.AMOUNT_APPLIED_FROM,
                                                   ARAA.AMOUNT_APPLIED),
                                               0),
                                           -6,
                                           NVL(NVL(ARAA.AMOUNT_APPLIED_FROM,
                                                   ARAA.AMOUNT_APPLIED),
                                               0),
                                           0),
                                    0)),
                         ''999999999999999999.00'')) AS MNT_LT_RGL,
           ltrim(to_char(sum(DECODE(ARAA.STATUS,
                                    ''UNAPP'',
                                    NVL(ARAA.AMOUNT_APPLIED,
                                        0),
                                    0)),
                         ''999999999999999999.00'')) AS  MNT_NLT_RGL,
           ltrim(to_char(sum(DECODE(ARAA.STATUS,
                                    ''ACC'',
                                    NVL(ARAA.AMOUNT_APPLIED,
                                        0),
                                    0)),
                         ''999999999999999999.00'')) AS MNT_CPTE_RGL,
           ltrim(to_char(sum(DECODE(ARAA.STATUS,
                                    ''UNID'',
                                    NVL(ARAA.AMOUNT_APPLIED,
                                        0),
                                    0)),
                         ''999999999999999999.00'')) AS MNT_NID_RGL from AR_RECEIVABLE_APPLICATIONS_ALL ARAA group by ARAA.Cash_Receipt_Id ) a  
     
     WHERE AR_CASH_RECEIPTS_ALL.Org_Id = GL_SETS_OF_BOOKS.attribute7
       AND CPT_FUSION_PKG.F_CPT_CONV_SOCIETE(GL_SETS_OF_BOOKS.attribute6,
                                             ''SURF'') = CC__SOCIETE.cd
        AND gl_sets_of_books.attribute6 = DECODE(nvl(''' || SOCIETE ||
                          ''',''X''), ''X'', gl_sets_of_books.attribute6, nvl(''' || SOCIETE ||
                          ''',''X'')) -- condition sur la société
       AND GL_SETS_OF_BOOKS.attribute7 =
           HR_ALL_ORGANIZATION_UNITS.ORGANIZATION_ID
       AND gl_sets_of_books.attribute5 != ''RUB_NOV''
       AND a.Cash_Receipt_Id=AR_CASH_RECEIPTS_ALL.Cash_Receipt_Id
       AND AR_CASH_RECEIPTS_ALL.Cash_Receipt_Id =
           AR_PAYMENT_SCHEDULES_ALL.Cash_Receipt_Id
       AND AR_CASH_RECEIPTS_ALL.Receipt_Method_Id =
           AR_RECEIPT_METHODS.Receipt_Method_Id
       AND AR_CASH_RECEIPTS_ALL.Pay_From_Customer =
           HZ_CUST_ACCOUNTS.Cust_Account_Id
       AND AR_CASH_RECEIPTS_ALL.Customer_Site_Use_Id =
           HZ_CUST_SITE_USES_ALL.Site_Use_Id
       AND AR_CASH_RECEIPTS_ALL.remittance_bank_account_id =
           AP_BANK_ACCOUNTS_ALL.Bank_Account_Id
       AND AP_BANK_ACCOUNTS_ALL.BANK_BRANCH_ID =
           AP_BANK_BRANCHES.BANK_BRANCH_ID
       AND AR_CASH_RECEIPTS_ALL.Cash_Receipt_Id =
           AR_CASH_RECEIPT_HISTORY_ALL.CASH_RECEIPT_ID(+)
       AND AR_CASH_RECEIPT_HISTORY_ALL.First_Posted_Record_Flag=''Y''
     
         AND AR_CASH_RECEIPT_HISTORY_ALL.GL_DATE < ''' || DATE_GL || '''
    AND AR_CASH_RECEIPTS_ALL.Status!=''REV''
       AND ( to_number(a.MNT_LT_RGL,''999999999999999999.00'') = 0 -- non lettré
       OR to_number(a.MNT_NLT_RGL,''999999999999999999.00'') > 0 -- partiellement lettré
       OR (to_number(a.MNT_LT_RGL,''999999999999999999.00'') = AR_CASH_RECEIPTS_ALL.AMOUNT AND AR_PAYMENT_SCHEDULES_ALL.DUE_DATE > ''' ||
                          DATE_GL || '''))
      )';
    Lors de l'execution de celui-ci, une erreur du type
    ORA-02069 Param. global.names doit être à true pour cette opération
    .
    (lors de l'appel à "CPT_FUSION_PKG.F_CPT_CONV_SOCIETE")


    Si dans le package je met un ALTER SESSION set global.name=TRUE et que j'exécute de nouveau le programme, il chunte le db-link (SAPP de la requête) table CC__SOCIETE

    Je ne sais plus trop comment faire...

    Qui a une idée?

    Merci

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Ragerdez cette discution sur ONT.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 73
    Par défaut
    Merci pour le lien, mais les contraintes font que je ne peux pas renommer le dblink

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par the_youpi Voir le message
    Merci pour le lien, mais les contraintes font que je ne peux pas renommer le dblink
    Ni pour un test ?
    T'as lu aussi ce lien ?

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 73
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Ni pour un test ?
    T'as lu aussi ce lien ?
    Merci pour les liens.
    j'ai pu résoudre le souci en créant les tables directement sur la base source. et par la suite je transfert les données vers la base cible.

    Merci. le sujet est clos.

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Utilise au moins les vues matérialisées pour faire ça

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

Discussions similaires

  1. ORA-00904 avec SQL dynamique
    Par pascal_T dans le forum PL/SQL
    Réponses: 10
    Dernier message: 10/10/2008, 14h46
  2. Appel de function en SQL Dynamique
    Par dkd dans le forum Oracle
    Réponses: 22
    Dernier message: 28/09/2004, 18h01
  3. SQL dynamique : pb de syntaxe
    Par Pasiphae dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/08/2004, 16h50
  4. SQL dynamique
    Par Etienne1 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/08/2004, 10h18
  5. SQL Dynamique - Materialized view
    Par Simeans2004 dans le forum SQL
    Réponses: 15
    Dernier message: 10/06/2004, 17h56

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