楼主: gzndxf
6301 16

请教: excel文件打开失败 [推广有奖]

11
yatming 发表于 2010-6-17 11:16:31
ERROR: Utility file open failed.
这个错误经常发生在proc步中,从代码来看,这个错误更像是发生在sort步中,而不是import excel的过程。
关于这个错误我的理解是sort步所需Utility file的磁盘空间不够。对Utility file的个人理解为某些过程的临时文件。

所以给出以下方法可以一试:
1.由于一个session对应一个utilloc,因此如果之前的的program生成的utility file较大且没有delete,那么其必占所在磁盘的space,因此关闭这个session,utility file的空间即被释放,然后另起一个,单独执行之后sort步,看看是否可以成功。
2.如果第一个方法不行,采用通用的方法:PROC Options value option = utilloc;run;查看utilloc参数值,了解以下uitlloc所在磁盘的空间情况。相比之所要sort的dataset,且由于sort步sas默认多线程,因此所需的space一般而言是dataset的4-5倍,但保守期间衡量一下是否为dataset的10倍,如果不到,另外指定utillloc所属位置,所选磁盘最好较大一点,由于utilloc这个option只有在session startup时才会有效,因此指定方法如下:
a。对于长久需要改变这个目录,则可以在autoexec和cfg中直接指定。
b。对于只是临时改变,则在cmd或者sas的快捷方式中把此参数指定掉:sas -utilloc (your path list),括号中可以指定多个目录的list,也就是说其他磁盘的剩余空间可以联合应用。每个目录用引号标识,具体参见help。sas启动之后,再用proc options查看utilloc是否指定成功,然后运行你的程序,看是否会报错。
3.如果你的磁盘已用空间已经较饱和,那么试着改变策略:更改sort的运行方式,采用单线程,所需空间理论上会减至原数据集的2倍,但是sort运行效率会明显降低,其方法指定options NOTHREADS 即可,如果不需要全局,则proc sort data=xxx nothreads......亦可。

以上方法仅供参考,曾经遇到过这个问题,因为server上空间较足,后就重新指定utilloc,完事ok。

12
gzndxf 发表于 2010-6-18 13:57:43
excel文件没有打开

13
monkeypigr 发表于 2010-6-20 14:21:00
I can help you, send me the excel file.

14
gzndxf 发表于 2010-6-20 14:45:00
excel文件并没有打开

15
daidaishunhua 发表于 2010-6-21 16:22:06
x.sea_frame&prov.
&prov有事先定义吗?这个宏变量必须能够调用才能够运行

16
gzndxf 发表于 2010-6-21 20:36:46
谢谢各位的指教,谢谢了!

17
gzndxf 发表于 2010-6-21 20:38:44
谢谢各位的指教,谢谢了!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 14:03