首页 > 解决方案 > 警告:无法扫描列的文本长度或时间类型

问题描述

我在 Windows 6.1.7601 上运行 SAS 9.4 TS Level 1M5 x64_7PRO 平台。

我正在尝试导入一个包含 7 列的 30,000 多条记录的 Access 表。其中一列“结果”包含某些记录的超过 4,000 个字符(数字和文本)的数据。使用下面的代码时,

 PROC IMPORT OUT= ED_Notes_July2019
        DATATABLE= "ED_Notes_Import" 
        DBMS=ACCESS REPLACE;
 DATABASE="J:\EMTC\JMC\PECARN Registry\ED Documents Reports\2019\Month\Docs_Jul.accdb"; 
 SCANMEMO=YES;
 USEDATE=NO;
 SCANTIME=YES;
 RUN;

我得到以下信息,“警告:无法扫描列 RESULT 的文本长度或时间类型。” 在网上做一些研究时,我只找到了涉及 Excel 的潜在解决方案 ( http://support.sas.com/kb/33/257.html )。有人知道适用于 Access 的解决方案吗?

我还将数据存储在 SQL 表中(索引空间 836 MB;数据空间 50,000 MB;行数 8,948,138),但使用以下代码从那里导入数据需要几个小时:

 LIBNAME SQL ODBC DSN='SQL Server' schema=dbo; 
 data ED_Notes_Master; 
 set sql.ED_Notes_Master;
 if datepart(RESULT_DT_TM) > '01JUL2019'd;
 run;

标签: sas

解决方案


if语句很可能不会被ODBC引擎的自动功能推送到服务器端。

尝试用if语句where和日期时间文字替换 :

where RESULT_DT_TM > '01JUL2019:0:0'DT;

推荐阅读