Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Administration
Administration Forum d'entraide sur les fonctionnalités d'administration de SAS : installation, portal, serveurs
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 15/06/2011, 15h16   #1
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Par défaut Connexion serveur par SQL

Bonjour,

En fait j'essai de rajouter l'étape SQL ci-dessous que je n'arrive pas à faire marcher:

Code :
1
2
3
4
5
6
7
8
9
10
 
PROC SQL NOPRINT;  
SELECT DISTINCT(NAME)
INTO   :LIST_VAR
separated BY ' '
FROM paraDA.CONTENTS;
SELECT COUNT(NAME)
INTO   :NB_VAR
FROM paraDA.CONTENTS;
QUIT;
En gros ça créé pas les 2 macro-variables LIST_VAR et NB_VAR, alors j'ai parcouru ce forum et google et apparement pour que la proc SQL marche il faut rajouter:

Code :
1
2
3
 
CONNECT TO DB2; 
SELECT * FROM connection TO db2 ()
Ce qui pose problème puisqu'apparement je ne peux pas me connecter à DB2 DBMS, aussi je me demandais si pour créer mes 2 macro-variables j'étais obligé de passer par le code supplément ci-dessus?
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 15h40   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Tu peux aussi passer par un call symput
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 15h52   #3
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Hello,
il faut utilisé le SQL PASS THROUGH

Code :
1
2
3
4
5
6
7
8
 
proc sql;
CONNECT TO DB2 (paramètres de connexion); 
SELECT  dis_name, count_name INTO:LIST_VAR,: NB_VAR
 FROM connection TO db2 (SELECT DISTINCT(NAME) 
AS dis_name, COUNT(NAME) AS count_name  );
disconnect FROM DB2; 
quit;
Attention à la version DB2 , les anciennes n'accepte pas les alias et te renvoie des noms de variables par defaut quand tu fais des select distinct ou count, ou...
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 17h14   #4
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
L'erreur que SAS me renvoit:
Code :
1
2
3
 
ERROR: The DB2 engine cannot be found.
ERROR: A Connection TO the DB2 DBMS IS NOT currently supported, OR IS NOT installed at your site.
Et en effet en tapant:
Code :
1
2
3
 
PROC SETINIT;
RUN;
je retrouve uniquement ça dans la liste: SAS/ACCESS Interface to PC Files.
Or j'ai cherché sur internet et il parle d'un accés: SAS/ACCESS Interface to DB2. D'où ma question: est-ce que le module SAS/ACCES Interface to PC Files contient également Interface to DB2 ou bien c'est un autre module à prendre séparément?

Pour en revenir à ton code S_a_m, si je met comme paramètre de connexion:
Code :
1
2
3
 
PROC SQL;
CONNECT TO DB2 (SSID=DB2P);
ça devrait marcher?

Si jamais je ne peux pas faire avec une proc SQL je verrais avec l'idée que m'a proposé Brice...
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 17h29   #5
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
oui , il te faut SASAccess to DB2,
voici le code standard de connexion au bases de données via le module SASACCESS to SOURCE ODBC:

Code :
1
2
3
4
5
6
7
 
proc sql;
connect TO ODBC/* (DB2,ORACLE,ACCESS,SQLSERVER,...)*/ (paramètres de connexions )/* en général il te faut au minimum un USER et un PASSWORD de la base de donnée*/;
 
CREATE TABLE tab AS SELECT " ici c'est sas qui travail ".... FROM connexion TO ODBC ( SELECT.....ici c'est une requête soumise à l'ODBC ou à la base de donnée et dans ton cas le code qui est entre parenthèse c'est le moteur DB2 qui va l'exécuté);
disconnect FROM ODBS;
quit;
quand à la solution de Brice , voir le call symput. je ne sais pas si tu récupère ta table de dB2 via un libname, si c'est le cas. Une fois t'as récupéré la table de DB2 voici ce qu'il faut faire :
Code :
1
2
3
4
5
6
 
PROC SQL NOPRINT;  
	SELECT DISTINCT(NAME),SELECT COUNT(NAME)
	INTO   :LIST_VAR separated BY ' ',:NB_VAR  separated BY ' '
	FROM paraDA.CONTENTS;
QUIT;
Dans tout les CAS si tu n'as pas SASAccess TO DB2 le SQL PASS THROUGH je marchera pas .
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 17h41   #6
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Ok... bon bah voilà qui est bien triste... va falloir que je repense une grosse partie de mon programme... au cas où, une idée du prix de ce module? ou du moins un ordre de grandeur...?

Sinon, merci pour les infos apportées.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 17h45   #7
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
solution ;
si tu te connais en DB2, tu peux exporter ta table en fichier CSV ou autre via la commande EXPORT et tu l'importes dans SAS ( pas optimale mais sa t'évitera peut être d'acheter module SASACCESS to DB2).
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 18h13   #8
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
T'inquiète, on vas cotiser pour toi
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h19.


 
 
 
 
Partenaires

Hébergement Web