Я все еще новичок в SAS и DB2. У меня есть таблица DB2 со столбцом, в котором хранятся значения, закодированные в виде временных меток. Я пытаюсь загрузить данные в этот столбец из набора данных SAS в моем рабочем каталоге. Однако некоторые из этих меток времени соответствуют датам до 01-01-1582 и не могут быть сохранены в качестве значений даты и времени в SAS. Вместо этого они хранятся в виде строк.
Это означает, что если я хочу загрузить эти значения в таблицу DB2, я должен сначала преобразовать их в метку времени с помощью функции TIMESTAMP () DB2, которая, насколько мне известно, требует сквозного SQL с оператором выполнения (в отличие от SAS ДОСТУП к методу libname). Например, чтобы написать одно значение, я делаю следующее:
PROC SQL;
connect to db2 (user = xxxx database = xxxx password = xxxx);
execute (insert into xxxx.xxxx (var) values (TIMESTAMP('0001-01-01-00.00.00.000000'))) by db2;
disconnect from db2;
quit;
Как я могу добиться этого для всех значений в исходном наборе данных? Оператор select ... from внутри команды execute не работает, потому что, насколько мне известно, я не могу ссылаться на рабочий каталог SAS из соединения DB2.
В конечном итоге я мог бы написать макрос, который выполняет блок PROC SQL, указанный выше, и вызывать его из шага данных для каждого наблюдения, но мне было интересно, есть ли более простой способ сделать это. Изменение типов переменных невозможно.
Заранее спасибо.