2017-08-28 1 views
0

Nous avons utilisé EG pour exécuter le travail SAS manuellement, et j'essaie d'automatiser certains processus SAS en utilisant des scripts shell. Cependant, tous les scripts qui s'exécutaient dans EG donnent maintenant une erreur en disant que les Libref ne sont pas assignés.Comment affecter SAS Libref sous UNIX?

Comment puis-je attribuer/migrer toutes les bibliothèques que nous avons dans EG vers UNIX pour tous les scripts SAS à utiliser?

C'est l'un code i utilisé pour tester:

proc sql print; 
connect using CPP_SRC as sql;     
create table RESULTS.dummy_tt2 as 
select * 
    from connection to sql(select * from bns_results.dummy_tt) ; 
disconnect from sql; 
quit; 

Et l'erreur que je reçois:

NOTE: SAS initialization used: 
     real time   0.03 seconds 
     cpu time   0.02 seconds 

1   proc sql print; 
2   connect using CPP_SRC as sql; 
ERROR: Libref CPP_SRC is not assigned. 
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements. 
3   create table RESULTS.dummy_tt2 as 
4   select * 
5    from connection to sql(
6       select * from bns_results.dummy_tt 
7       ) ; 
NOTE: Statement not executed due to NOEXEC option. 
8   disconnect from sql; 
NOTE: Statement not executed due to NOEXEC option. 
9   quit; 
NOTE: The SAS System stopped processing this step because of errors. 
NOTE: PROCEDURE SQL used (Total process time): 
     real time   0.00 seconds 
     cpu time   0.00 seconds 

Merci

+0

vous devez être spécifique, il y a beaucoup de raisons possibles. Pouvez-vous montrer un exemple, avec un journal? Une possibilité est qu'ils ont été définis avec des séparateurs de fichiers Windows ('\') au lieu d'unix ('/'). –

+0

@AllanBowe J'ai mis à jour avec l'exemple. La ligne ERREUR: Libref CPP_SRC n'est pas affectée. Cela m'amène à penser que j'ai besoin d'initialiser les bibliothèques SAS sous Unix pour qu'elle s'exécute. – user3646699

Répondre

0

Dans EG votre bibliothèque CPP_SRC a probablement été définie dans métadonnées. Essayez d'exécuter cette macro avec options mprint; pour extraire le code SAS dont vous avez besoin pour recréer la bibliothèque sous Unix.

En bref, vous devez créer un nouveau script contenant toutes vos instructions libname pour pouvoir les affecter à votre session Unix.

+1

cela fonctionne, je finis par créer un autoexec_cpp.sas séparé et l'utilise comme ceci 'sas -insert autoexec" ./autoexec_cpp.sas "test3.sas' – user3646699