【发布时间】:2016-06-27 05:07:24
【问题描述】:
我之前用 SAS 程序在大型机上编写了一个文件(按列)。我想用 Java 实现类似的效果。
SAS 程序:
FILENAME fileReference ftp "'ThreadNum.ThreadType.NEW.AplicationFlag.J&feed_dt.'"
RCMD='SITE TR PRI=20 SEC=20 RECFM=F LRECL=84' HOST='host'
USER="&user." PASS="&pass."
;
DATA _null_;
SET MyDataSet ;
name=0;
pro='000';
format custid 05. ;
action='A ';
flagcnt='01';
FILE fileReference LRECL=84 RECFM=f;
PUT @01 num13 s370fpd07.
@08 names 370fpd05.
@13 pro $ebcdic03.
@16 action $ebcdic02.
@18 flag $ebcdic02.
@56 flagcnt $ebcdic02.
@70 num15 s370ff015.
;
RUN;
所以基本上,我的问题是:
将
ascii值转换为ebcdic和s370fpd格式。 (我明白了,s370fpd和COMP3一样)直接在大型机服务器上写入文件,而不将其创建到本地服务器。我可以跳过这个问题,即使我们首先在本地创建一个具有所需编码的文件
ascii到ebcidic并将decimal和ftp打包到大型机 - 我很好。
【问题讨论】:
-
"JAVA" 不是首字母缩写词。它只是“Java”。
-
在我看来,您的“直接在大型机上”并不是您想的那样。 FTP。此外,您是否与大型机人员确认您在大型机(您的文件)上的数据集是否被“阻止”?未阻塞的 84 字节记录不会很好地执行,如果你有任何数量的记录,它会很明显。
-
@BillWoodger:数据集没有被阻止,我是唯一会写入它的用户。 LRECL=84 是 Maniframe 用户推荐的,我并不真正关心它。
-
好的,不能太大。我认为您不知道在这种情况下阻塞是什么。如果您确实使用了大量数据,您就会知道。