SAS表观符号参考PWD未解决

时间:2014-05-06 20:09:57

标签: sas

我有SAS代码,它从外部.txt文件中读取密码,并与odbc建立连接。当我在SAS中运行以下代码时,它可以正常工作

filename pw "C:/xxxx"; 

data _NULL_ ;
  infile pw  ; 
  input pw : $50. ;
  call symputx('pwd',pwd);
run;

libname xxx odbc user=myUser password=&pwd. dsn=myDsn schema=mySchema;

proc sql;  
  connect to xxx(dsn=myDsn user=myUser password=&pwd.);

但是,当我创建批处理文件以从Windows任务计划程序运行它或从SAS Enterprise Guide运行它时,我得到Apparent symbolic reference PWD not resolved

为什么会这样?如何处理这个问题?

2 个答案:

答案 0 :(得分:5)

由于您的call symputx未正确定义,至少根据您粘贴的代码。

data _NULL_ ;
  infile pw  ; 
  input pw : $50. ;
  call symputx('pwd',pw);
run;

这将是正确的语法(或将输入语句更改为读取pwd)。查看您的datastep的日志,它应该有一个警告pwd was uninitialized

如果您正确粘贴了代码,我仍会查看您的数据步骤的日志,并查看是否有任何行已处理。 mjsqu可能是正确的,因为您可能无法看到目录(如果这是在服务器上并且您没有访问服务器可见目录),或者由于您在某个目录中而可能存在某些其他问题不同的环境。

答案 1 :(得分:4)

你有一个错字。我的猜测是你的原始变量名为pwd,你测试了你的代码,它运行正常,然后你重命名它。如果你关闭你的sas会话并尝试重新运行,我敢打赌它会失败。

尝试更改为:

filename pw "C:/xxxx"; 

data _NULL_ ;
  infile pw  ; 
  input pw : $50. ;
  call symputx('pwd',pw);
run;