Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages > VB.NET
VB.NET Forum d'entraide sur la programmation Visual Basic .NET. Avant de poster -> FAQ VB.NET, Articles VB.NET, Sources VB.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/12/2012, 10h52   #1
yojo_yojo
Invité de passage
 
Inscription : 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.
yojo_yojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2012, 11h09   #2
Lendcap
Candidat au titre de Membre du Club
 
Inscription : mars 2011
Messages : 38
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 38
Points : 10
Points : 10
Bonjour,
je pense que tu devrais regarder un peu au niveau du type de jonction que tu crées.
Lendcap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 12h04   #3
yojo_yojo
Invité de passage
 
Inscription : janvier 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 4
Points : 0
Points : 0
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.
yojo_yojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 14h14   #4
Bluedeep
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 6 544
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 6 544
Points : 13 893
Points : 13 893
Verifier la requête SQL reçue par le serveur; j'aurai commencé par là.
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2013, 12h37   #5
yojo_yojo
Invité de passage
 
Inscription : janvier 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 4
Points : 0
Points : 0
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.
yojo_yojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h57.


 
 
 
 
Partenaires

Hébergement Web