2013-11-21 5 views
1

Я пытаюсь получить доступ к таблице SAS, которую я сделал за пределами Teradata Passthrough в рабочем пространстве для запуска запроса. Теперь это дает мне ошибку. Мой вопрос заключается в том, как получить доступ к таблице не в Teradata внутри транзитной передачиTeradata Prepare object error

proc sql; 
    connect to teradata (user="&[email protected]" password="&TERADATA_PASS" server='ABC' 
connection=global database="GTY"); 
    select * from connection to teradata(
    select * from mm) 
; 
quit; 

мм не в Teradata, но сделаны в рабочем каталоге.

ответ

1

Возможно, вы не можете получить доступ к этому прямому транзиту. Вам либо нужно выполнить свой запрос, используя libname доступ к Teradata, либо вам нужно разместить нужную информацию в макропеременной или текстовом файле, который может быть включен в запрос транзитной пересылки. В режиме сквозной передачи вы можете получить доступ только к тому, что вы можете получить на интерактивном сеансе Teradata, поэтому, если у вас нет SAS, определенного как ODBC или такого провайдера для Teradata, это не так.

Обычно я пытаюсь выполнить весь процесс с помощью libname доступа, и если это не удается (из-за времени выполнения или из-за необходимости использовать только элементы, такие как хранимые процедуры), я использую libname доступ для загрузки таблицы в таблицу внутри СУРБД (Teradata здесь). Затем он доступен в вашем сеансе passthrough для использования (в качестве родной таблицы Teradata).

+0

Я думал то же самое. Libname просто требует времени для решения, и поэтому я думал, что пройду через Pass Through. Однако мне кажется, что это противоречиво. Поскольку «макропеременные», выполненные в рабочей директории, можно использовать внутри транзитной пересылки, но «таблица» - нет. – LonelySoul

+1

Макро-переменные - это только текстовые всплывающие окна, поэтому, когда пересылка переведена в teradata, она разрешает значения макропеременных. Наборы данных - это их собственная вещь; метод доступа libname предназначен для доступа к ним. Простое копирование таблицы через доступ к libname должно быть не медленнее, чем любой другой метод; единственная причина, по которой libname медленнее, - это когда вам нужно загрузить всю таблицу из teradata до того, как что-то сделать (что в случае загрузки таблицы, конечно, не имеет значения). – Joe