将SAS读入文件转换为SQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将SAS读入文件转换为SQL相关的知识,希望对你有一定的参考价值。

我正在尝试将.DAT文件读入SQL。代理商数据提供商在这里提供了SAS的读入代码(https://www.health.ny.gov/statistics/sparcs/docs/ip_v2.sas)。我想将这些数据读入一个安全的SQL数据库,并想知道是否有人可以帮助我将这个SAS代码翻译成SQL?这是开始:

OPTIONS NOCENTER NODATE FORMDLIM=' ' compress=yes pagesize=50;
%let yr=11;

/**** READ IN FILE ******* No Check for HexDec ****/
data IUM;
  infile eium truncover lrecl=2500 PAD ignoredoseof /*obs=10000*/ ; 
  INPUT
    @0016   ordr    $char3.
    @0001   RECDTL  $char2500.
  ;

再往下是指定列的位置和长度,而不是数据类型。那里的SAS用户感觉聪明慷慨吗?

答案

有什么要翻译的? @xxxx说的是从哪个列开始,然后你有变量名和用来读它的信息。 SAS只有两种数据类型,固定长度字符串和浮点数。任何以$开头的信息都会生成一个字符变量。其他人会产生一个数字。一些明显的信息将生成可以解释为日期,时间或日期时间(时间戳)值的数字。如date9.time8.datetime20.。还有其他以文本格式表示日期的方式的信息,如YYMMDD.MMDDYY.DDMMYY.

SAS将根据您在代码中首次引用变量的时间来定义数据集中变量的顺序。因此,ORDR将在RECDTL之前在数据库中定义,即使后者首先出现在文本文件中(第1列对第16列)。

以上是关于将SAS读入文件转换为SQL的主要内容,如果未能解决你的问题,请参考以下文章

SAS编程:如何批量读入某路径下外部文档数据?

将数据读入 SAS,列未对齐

将SAS数据集转换为文本文件

SAS/PROC-SQL 从具有唯一键的表转换为具有相同键的多行表

将行转换为涉及日期的列

sas将几分几秒转化为秒