Вы можете использовать опцию libname LOGDB
, чтобы сообщить SAS, в базу данных которой должны быть созданы файлы журналов. По умолчанию они создаются в той же базе данных, что и создаваемая таблица (называемая целевой таблицей плюс три символьных суффикса, которые вы обнаружили). Используя информацию, представленную в комментариях, попробуйте следующее:
/* Delete any exisiting log files for table TPT_LD_TEST */
libname TPTLOAD TERADATA
SERVER=TDServ DATABASE=TPTLOAD
USER=tduser PASSWORD=tdpasswd1
;
proc delete data=TPTLOAD.TPT_LD_TEST_ET;
run;
proc delete data=TPTLOAD.TPT_LD_TEST_UV;
run;
proc delete data=TPTLOAD.TPT_LD_TEST_RS;
run;
libname TPTLOAD clear;
/* Define connection to target database */
LIBNAME TDSERV TERADATA
SERVER=TDServ
USER=tduser PASSWORD=tdpasswd1
LOGDB=TPTLOAD;
/* Truncate target table if necessary */
proc sql noprint;
delete from TDSERV.TPT_LD_TEST;
quit;
proc append base=TDSERV.TPT_LD_TEST(fastload=yes tpt=yes)
data=work.FastLoad;
run;
Я добавил код, чтобы удалить любые существующие строки в таблице назначения (требование для FASTLOAD
).
Если у вас есть и CREATE TABLE
права на целевую базу данных, возможно, было бы безопаснее удалить и пересоздать таблицу, чтобы вы могли гарантировать структуру и явно называть индекс таблицы.
/* Delete target table if it exists */
proc delete data=TDSERV.TPT_LD_TEST;
run;
data TDSERV.TPT_LD_TEST
(fastload=yes tpt=yes
dbcreate_table_opts='primary index(index_column_name)'
)
set work.FastLoad;
run;
И в любом случае обязательно удалите любые дубликаты записей из вашего исходного набора данных; они будут записаны в ваши файлы ошибок (а также любые записи, которые не будут содержать других ограничений).
PROC DELETE
- удобное устройство, потому что оно не создаст ошибку, если целевая таблица не существует.
Можно ли предположить, что вы попытались указать свою альтернативную базу данных для таблиц журналов в качестве префикса для имени таблицы и что это не сработало? –
Привет, Роб, да, я определял таблицы журналов, добавляя другое имя базы данных в качестве префикса. не могли бы вы дать мне знать, как решить эту проблему. – lucky
Можете ли вы опубликовать то, что вы пробовали, и не работает? (Переименуйте объекты, если вам нужно - синтаксис - это то, что важно.) –