Доступ к базе данных чтения с оператором infile - PullRequest
0 голосов
/ 14 сентября 2018

TLDR:

Я хочу прочитать свою базу данных доступа через оператор infile, чтобы получить полный контроль над форматом, информацией, длиной переменных / столбцов

У меня естьДоступ к базе данных, которая имеет около 2 миллионов записей. В настоящее время я импортирую ее с PROC IMPORT.

Проблема:

Из того, что я прочиталчто PROC IMPORT использует около 32 тыс. строк для установки формата, информации, длины для переменных. Я чувствую, что данные могут быть усечены.

Другая проблема заключается в том, что все мои символьные переменные имеют формат и информацию как $ 255..и длиной 255. Я не хочу, чтобы все мои переменные были такой длины, формата, информации.

Я хочу, чтобы некоторые переменные были больше 255, а некоторые - меньше 255.

Мой текущий код:

PROC IMPORT OUT= Input.access_db 
DATATABLE= "DATABASE" 
DBMS=ACCESSCS REPLACE; 
DATABASE="\\Input\Entire_Records.accdb"; 
SCANMEMO=YES; 
USEDATE=YES; 
SCANTIME=NO; 
RUN;

Я хочу сделать выше с оператором infile.

У меня есть код для импорта моего csv через оператор infile. Но яя не понимаю, как мне изменить его, чтобы он читал мои записибаза данных

data Input.Real;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile 'Input\Real.csv'
delimiter = ',' 
MISSOVER 
DSD 
lrecl=32767 
firstobs=2 ;
informat ID 11.;
informat IDENTIFIER $255. ;
informat LINE_CODE $255. ;
informat ACTION $255. ;

format ID 11.;
format IDENTIFIER $255. ;
format LINE_CODE $255. ;
format ACTION $255. ;

input

ID
IDENTIFIER $
LINE_CODE $
ACTION $ ;

if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */
RUN;
...