SAS 9.2无限期运行Oracle查询

SAS 9.2无限期运行Oracle查询,oracle,sas,Oracle,Sas,我正在使用SAS for windows 9.2对Oracle数据库运行一个相当大的查询。这个查询非常大,在中,我在WITH子句中编写了一个子查询,并使用了4次。这在SQL PLUS和SQL Developer上运行良好,但当我使用SAS运行它时,程序在20分钟后挂起,我甚至看不到日志窗口。我从未使用过SAS,也不知道如何继续,但尝试了以下选项: 我创建了一个SAS代码文件,并从windows批处理文件运行它,希望将日志写入windows文件系统,但即使这样也可以运行,而且我没有看到任何写入日

我正在使用SAS for windows 9.2对Oracle数据库运行一个相当大的查询。这个查询非常大,在中,我在WITH子句中编写了一个子查询,并使用了4次。这在SQL PLUS和SQL Developer上运行良好,但当我使用SAS运行它时,程序在20分钟后挂起,我甚至看不到日志窗口。我从未使用过SAS,也不知道如何继续,但尝试了以下选项:

  • 我创建了一个SAS代码文件,并从windows批处理文件运行它,希望将日志写入windows文件系统,但即使这样也可以运行,而且我没有看到任何写入日志文件的内容
有人能指点我吗。如何使用ALTLOG命令将日志文件写入windows文件系统,以便了解确切的错误消息。顺便说一句,DBA提到查询运行良好,行从服务器端返回,但由于某些原因,SAS程序无法显示这些数据。我从查询中得到了大约45000条记录


谢谢

我将分为两点:

1) 在SAS中运行现有Oracle SQL查询而不使用SAS: 最好的方法是将Oracle SQL代码嵌入所谓的PROC SQL显式传递:

proc sql;
    connect to oracle as db1 (user=user1 pw=pasw1 path=DB1);
    create table test_table as
    select *
    from connection to db1
        ( /* here we're in oracle */
                  select * from test.table1 where rownum <20 
                )
    ;
    disconnect from db1;
quit;
相反的选项被缓冲

要查找SAS会话中使用的配置文件,请运行以下命令:

proc options option=config;run;

然后在配置文件的单独一行中输入上面的选项。

是的,我正在使用proc sql和oralce odbc连接运行查询。我尝试使用工具-->Otions-->系统更改LOGPARM值,但由于某些原因,在选择“修改值”时不会发生任何变化。您只能在启动SAS程序时定义LOGPARM选项。必须在配置文件中或作为命令行选项进行设置。@BobDuell能否请您详细说明设置LOGPARM选项。我在配置文件中没有看到这个选项。如何使用SAS命令行设置此设置?你能告诉我吗?请看瓦萨修改后的答案;要设置LOGPARM选项,需要将该行添加到配置文件中,或者作为批处理脚本的命令行选项。但这可能不是你的问题。请显示您的代码。我昨晚离开了查询,看到一条错误消息“Windows日志已满”,然后通过谷歌搜索在配置文件中设置-dmsoutsize 99999和-dmslogsize=999999。现在我可以运行查询了。请发布完整的现有SAS程序(PROC SQL部分)。您下面的评论说您正在使用ODBC访问方法,可能是因为您没有SAS/access到Oracle的许可证;如果您正在执行选择操作,则输出可能会进入您的输出窗口,该窗口已满,SAS可能会提示您一条消息。
proc options option=config;run;