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

Requêtes et SQL. Discussion :

UNION multiples (ODBC/ORACLE) qui plante


Sujet :

Requêtes et SQL.

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut UNION multiples (ODBC/ORACLE) qui plante
    Bonjour,
    j'ai une requête à UNION multiples avec laquelle j'interroge via ODBC une base ORACLE.
    Jusqu'à 6 UNION ça marche.
    A parir de 7, ça plante (Ressources systeme inssufisantes me dit access).
    Par contre, quand je la récupère et l'execute directement dans PL/SQL ça marche bien.
    Y-a-t-il une limte à ce genre de chose dans Access.
    Merci
    Laurent

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Pas que je saches mais ça représente combien d'enregistrements ? Quel volume de données ?

    Si tu le fais en 2 passes :
    6 unions -> Table access
    Table access + 7ième unions
    ça fonctionne ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Par défaut
    Merci de ton retour,

    En fait ce n'est pas le nombre d'unions qui est en cause, car parfois 7 ça passe, ça semble plutot être un nombre de lignes de codes ?

    Je peux bien sur passer en plusieurs fois, ça règlerait le problème.

    Le nombre d'enregistrements renvoyés est faible (<1000).

    Le nombre de lignes de codes SQL est assez important.
    Pour chaque union, on a une dizaine de lignes de code + un critère prenant de 1 à +100 valeurs.

    Le problème peut il venir de ma variable "strsql" qui va stocker le code SQL d'interrogation ?

    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
     
    'Variables
    Dim db As Database
    Dim rs, rs2 As Recordset ‘pour remplir la table SQL_TRACKING avec le code SQL
    Dim strsql As Variant
    Dim MaBase As Database
    Dim MaReq As QueryDef
    Dim MonRes As Recordset
    Dim c As Long
     
    Set db = CurrentDb
    Set MaBase = DBEngine(0)(0)
     
    'Suppression de l'ancienne requête SQL DIRECT si trouvée
    If ObjectExists("Query", "SQL_TRACKING_DEF") Then
        DoCmd.DeleteObject acQuery, "SQL_TRACKING_DEF"
    End If
     
    'Vidage de la table temporaire d'importation, qui stockera les données renvoyées par Oracle
    If ObjectExists("Table", "T_TRACKING_TMP") Then
        db.Execute "delete * from T_TRACKING_TMP"
    End If
     
    'Définition du profil de Connexion
    Set MaReq = MaBase.CreateQueryDef("SQL_TRACKING_DEF")
    MaReq.Connect = "ODBC;DRIVER=Microsoft ODBC for Oracle;UID= " & zuid & ";PWD=" & zPwd & ";SERVER=" & zserver
     
    db.Execute "delete * from SQL_TRACKING" 'table où on va empiler le code SQL
     
    MaReq.SQL = strsql
     
    'Interrogation d'ORACLE et récupération des données dans la table temporaire
    MaReq.ReturnsRecords = True
    DoCmd.OpenQuery "RCREA T_TRACKING_TMP"
     
    'Fermeture
    MaBase.Close
    Set MaReq = Nothing
    Set MonRes = Nothing
    Set MaBase = Nothing
    nb: RCREA T_TRACKING_TMP = SELECT SQL_TRACKING_DEF.* INTO T_TRACKING_TMP
    FROM SQL_TRACKING_DEF;

Discussions similaires

  1. Requête UNION qui plante
    Par DiverSIG dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/06/2014, 16h45
  2. Différence entre drivers ODBC Oracle
    Par snoopy69 dans le forum Oracle
    Réponses: 4
    Dernier message: 24/02/2005, 14h27
  3. [JTextArea] redessin qui plante
    Par phil_ma dans le forum Composants
    Réponses: 3
    Dernier message: 04/01/2005, 05h19
  4. Problème avec les paramètres date BDE/ODBC Oracle/XP Pro
    Par Bloon dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/10/2004, 10h09
  5. [VB6] Connection ODBC Oracle
    Par babe dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/10/2002, 16h52

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