Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 11h11   #21
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 472
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 472
Points : 2 835
Points : 2 835
Code :
WHERE tu_lib LIKE '%D%l%gations%'
Pour être plus restrictif j'écrirais
Code :
WHERE tu_lib LIKE '%D_l_gations%'
Il y a visiblement un transcodage entre Oracle et SAS qui t'élimine les accents lors du transfert de données. Cela dit, si la requête n'est pas trop longue, ne peux-tu pas écrire
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PROC SQL; 
CONNECT TO ORACLE(PATH='STATPROD' USER=&user PASSWORD=&pwd); 
CREATE TABLE SASUSER.test AS    
SELECT * FROM CONNECTION TO ORACLE
(   
SELECT  tu_lib 
 
  FROM tableu_view  
 
WHERE SUBSTR(tu_lib,1,1) = 'D'  
)
WHERE CHAR(tu_lib,2)="e"
;
disconnect  FROM  oracle ;
SELECT * FROM SASUSER.test;
quit;
Ça éclate le filtre en 2 : sous Oracle, que la valeur commence par un D, puis sous SAS, après transcodage des accents en lettres non accentuées, tu vérifies que le 2e caractère est un e.

Quant à l'ordre du tri, il est assez classique que les caractères accentués soient relégués en fin de tri. Il y a sous SAS des options de la proc SORT pour contourner cela : SORTSEQ=LINGUISTIC(LOCALE=fr_FR) ; peut-être y a-t-il des équivalents sous Oracle, je ne sais pas.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 15h33   #22
Invité de passage
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : mars 2011
Messages : 23
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : mars 2011
Messages : 23
Points : 3
Points : 3
Bonjour,

Citation:
Ça éclate le filtre en 2 : sous Oracle, que la valeur commence par un D, puis sous SAS, après transcodage des accents en lettres non accentuées, tu vérifies que le 2e caractère est un e.
Merci pour cette info elle me sera certainement utile plus tard. Mais malheureusement l'exemple de test sur 'Delegation' fais parti d'un ensemble de requêtes imbriquées, je ne peux donc pas l'utiliser.

Merci bcp pour votre aide.
walooze est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h30.


 
 
 
 
Partenaires

Hébergement Web