#sas #enterprise-guide
Вопрос:
Я хочу использовать sas enterprise guide 8.3 для импорта csv-файла в реляционную базу данных. Я запускаю мастер импорта данных, нахожу файл csv в локальной папке(ОС Windows), затем нахожу библиотеку реляционной базы данных. Из графического интерфейса я не могу настроить сопоставление между источником и целью. целью является таблица в реляционной базе данных, в которой больше полей, чем в файле csv. Сбой мастера импорта данных произошел из-за того, что мастер попытался заменить уже существующую таблицу.
таким образом, я не могу использовать мастер импорта данных для достижения своей цели? только со следующим кодом ?
Libname TD teradata userid=xxxx password=xxxx fastload=Yes
proc import
dbms=csv /* specify you load comma separated data */
datafile="C:temptest.csv" /* fill in your data file */
out=TD; /* specify de dataset to load it to */
/* replace; so TEST will not replaced if it exists */
run;
Я не уверен, что приведенный выше код может решить мою проблему: out =TD не указывает имя таблицы, просто укажите целевую базу данных. Большое вам спасибо!
Комментарии:
1. Что происходит, когда вы запускаете этот код?
2. Соответствуют ли заголовки в CSV именам переменных в целевом наборе данных?
Ответ №1:
Похоже, вы пытаетесь добавить этот файл .csv в существующую таблицу Teradata с помощью SAS. Вы можете сделать это в два этапа:
- Импортируйте файл .csv в SAS как временную таблицу SAS (в качестве альтернативы, вы можете импортировать ее как временную таблицу в Teradata, если хотите).
- Добавьте временную таблицу SAS в основную таблицу Teradata
Механизм доступа SAS Teradata будет обрабатывать весь перевод кода из одной базы данных в другую:
Libname TD teradata userid=xxxx password=xxxx fastload=Yes;
proc import
dbms = csv
file = "C:temptest.csv"
out = tempTable;
replace;
run;
proc append base = td.have
data = tempTable
force;
run;
Или вы можете использовать SQL для добавления:
proc sql;
insert into td.have
select * from tempTable
;
quit;