Bonjour,
Je suis devant un cas sur lequel je cherche une explication. je vais vous mettre des exemples bruts.
numero_id est un champ de type varchar
Ce code executé par une machine windows XP cliente config en parametre regionaux anglais ne donne pas la meme reponse qu'une machine windows XP client config en param regionaux francais. En francais cette requette ne fonctionnne pas.
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 with myRequete as ( select rownum as id, m.numero_id, priorite from matricule m, identite i JOIN adresse a ON i.identifiant_fk = a.IDENTIFIANT_FK join type_adresse ta on ta.type_adresse_pk=a.type_adresse_fk where i.identifiant_fk = m.identifiant_fk AND m.numero_id IN ( '19640220751','19550608874','19700717693','19771120639','19790814641','19700911635') order by m.numero_id,ta.priorite) select numero_id priorite, rank() over(partition by numero_id order by priorite) rank from myRequete t1
le calcul du rank ne donne pas le meme resultats en fonction des versions param geo des pc clients.
Par contre en rajoutant un to_char apres le partition by, toutes les machines clientes affichent les bons resultats.
Nous avons regardé ds le cache d'oracle, ds le cas de la fonction sans to_char le code est le meme quel que soit les param geo du client, seul le resultat différe.
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 with myRequete as ( select rownum as id, m.numero_id, priorite from matricule m, identite i JOIN adresse a ON i.identifiant_fk = a.IDENTIFIANT_FK join type_adresse ta on ta.type_adresse_pk=a.type_adresse_fk where i.identifiant_fk = m.identifiant_fk AND m.numero_id IN ( '19640220751','19550608874','19700717693','19771120639','19790814641','19700911635') order by m.numero_id,ta.priorite) select numero_id priorite, rank() over(partition by to_char(numero_id) order by priorite) rank from myRequete t1
Nous avons trouver un paliatif mais nous n'avons pas trouvé l'explication. Avez vous une idée?
Je vais tenter de faire un jeu de données des demain qui montre ce resultat.
Ps:
Version d'oracle sur lesquel nous avons travaille: 10.2.0.1 et 10.2.0.4
Client Oracle ou driver jdbc appelant. 10.2.0.1,10.2.0.4 et 11.x.x.x
Partager