Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Inscrit en
    janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 4
    Points : 0
    Points
    0

    Par défaut ORA-01792: maximum number of columns in a table or view is 1000

    Bonjour,

    Débutant sur Visual Studio 2010 Professional - Programmant an Linq.

    Voici mon Query qui me pose probleme (ORA-01792):
    Code :
    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
     
    Public Function Run(ByRef FilterValues As FilterValues) As System.Linq.IQueryable Implements IReportDataProvider.Run
     
     
    'create connection to the ams schema
    Dim AMS = Me.mfContext
     
    Dim d_B As DateTime = FilterValues.DateFrom
    Dim d_E As DateTime = FilterValues.DateTo
    Dim FOND As String = FilterValues.Fund
    Dim CLANG As String = FilterValues.ReportingLanguage
     
     
    Dim FundMasterPoolMerge As IQueryable(Of NEW_MASTERNPTF3_Definitions) = ReportQueries.FundMasterPoolMerge(FOND, AMS)
     
    'get the related query data
    'Group By SUM of the MSOLDE_EGA_100 AND EGAL_1_100
    Dim EGA_CPT2 = From AMS_EGA_CPT In AMS.EGA_CPT
    Join AMS_TCPT In AMS.TCPT_LNG On AMS_TCPT.NCOMPTE Equals AMS_EGA_CPT.NRUBR
    Join FUND_SELECTION In FundMasterPoolMerge On AMS_EGA_CPT.NPTF Equals FUND_SELECTION.NPTF
    Where AMS_EGA_CPT.DATE_NAV >= d_B And AMS_EGA_CPT.DATE_NAV <= d_E And AMS_EGA_CPT.NRUBR <> 999998 And AMS_EGA_CPT.CEGA = "LU" And AMS_TCPT.CLANGUE = CLANG
    Group By NPTF = AMS_EGA_CPT.NPTF, TPARTS = AMS_EGA_CPT.TPARTS, DATE_NAV = AMS_EGA_CPT.DATE_NAV, NRUBR = AMS_EGA_CPT.NRUBR, XLIBELLE = AMS_TCPT.XLIBELLE
    Into Group
    Select New With {
    .NPTF = NPTF,
    .TPARTS = TPARTS,
    .DATE_NAV = DATE_NAV,
    .NRUBR = NRUBR,
    .XLIBELLE = XLIBELLE,
    .MSOLDE_EGA_100 = Group.Sum(Function(x) x.AMS_EGA_CPT.MSOLDE_EGA_100),
    .EGAL_1_100 = Group.Sum(Function(x) x.AMS_EGA_CPT.EGAL_1_100)
    }
     
    Return EGA_CPT2
     
    End Function
    (voir ligne 19)

    Le probleme se pose lors du "Join FUND_SELECTION In FundMasterPoolMerge On AMS_EGA_CPT.NPTF Equals FUND_SELECTION.NPTF"

    En debug mode la fonction FundMasterPoolMerge ne me renvoie qu'une donnée ("75851" dans cette example).

    Ce query marche parfaiment bien si je ne mets pas la ligne suivante:
    Join FUND_SELECTION In FundMasterPoolMerge On AMS_EGA_CPT.NPTF Equals FUND_SELECTION.NPTF

    et que je rajoute au statement 'Where':
    "AMS_EGA_CPT.NPTF = FOND And "

    Le statement qui marche est a ce moment la:

    Code :
    1
    2
    3
    4
    5
    Dim EGA_CPT2 = From AMS_EGA_CPT In AMS.EGA_CPT
    Join AMS_TCPT In AMS.TCPT_LNG On AMS_TCPT.NCOMPTE Equals AMS_EGA_CPT.NRUBR
    Where AMS_EGA_CPT.NPTF = FOND And AMS_EGA_CPT.DATE_NAV >= d_B And AMS_EGA_CPT.DATE_NAV <= d_E And AMS_EGA_CPT.NRUBR <> 999998 And AMS_EGA_CPT.CEGA = "LU" And AMS_TCPT.CLANGUE = CLANG
    Group By NPTF = AMS_EGA_CPT.NPTF, TPARTS = AMS_EGA_CPT.TPARTS, DATE_NAV = AMS_EGA_CPT.DATE_NAV, NRUBR = AMS_EGA_CPT.NRUBR, XLIBELLE = AMS_TCPT.XLIBELLE
    Into Group
    (voir ligne 3)

    En fait si j'utilise le statement qui marche je ne peux qu'interroger qu'une seule valeure ("75851"). C'est pourquoi je souhaiterais utiliser la fonction "FundMasterPoolMerge" qui peu me renvoyer plusieurs valeurs ("75851";"75852";"75853";etc...)

    Comment faire pour utiliser la fonction "FundMasterPoolMerge" sans avoir ce message d'erreur?

    En esperant avoir été clair, sinon n'hésitaient pas à me poser des questions.

    Merci d'avance pour votre aide.
    Michel.

  2. #2
    Candidat au titre de Membre du Club
    Inscrit en
    mars 2011
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : mars 2011
    Messages : 41
    Points : 11
    Points
    11

    Par défaut

    Bonjour,
    je pense que tu devrais regarder un peu au niveau du type de jonction que tu crées.

  3. #3
    Invité de passage
    Inscrit en
    janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    Bonjour,

    J'ai plusieurs autres query qui marchent sans probleme. Ici je ne comprend pas pourquoi j'aurais un probleme de relation avec le type...

    Tu n'aurais pas une autre piste?

    Merci à toi.

  4. #4
    Inactif
    Homme Profil pro François
    Chef de projet NTIC
    Inscrit en
    janvier 2007
    Messages
    6 608
    Détails du profil
    Informations personnelles :
    Nom : Homme François
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 608
    Points : 12 108
    Points
    12 108

    Par défaut

    Verifier la requête SQL reçue par le serveur; j'aurai commencé par là.

  5. #5
    Invité de passage
    Inscrit en
    janvier 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    Bonjour,

    En fait ma requête "FundMasterPoolMerge.NPTF" me donne une liste correcte (Dans cet example: FundMasterPoolMerge.NPTF = "75851").

    Donc je m'attendais a ce que ce statement:
    Code :
    Join FUND_SELECTION In FundMasterPoolMerge On AMS_EGA_CPT.NPTF Equals FUND_SELECTION.NPTF
    fonctionne correctement.

    Le probleme vient peut-etre du fait que cette selection est faite par un autre query hors de ce module... Mais je ne sais pas pourquoi :o(

    Merci pour votre aide.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •