SAS - использование импортированного в CSV-файла в SQL-коде (ошибка) - PullRequest
0 голосов
/ 06 мая 2019

Я хочу соединить набор данных CSV, импортированный через 'proc import', с набором данных, который я извлекаю из proc sql. Есть ли способ, чтобы бросить мой файл импорта Proc в Proc SQL? или наоборот?

вот где я нахожусь:

proc import datafile = 'filepath'
out = dataname
dbms = CSV
replace
;
run;

proc sql
connect to netezza as dbcon
(server="url" database=sandbox user=me password="&password.");

create table work as

select distinct * from connection to dbcon
(
select distinct a.*

from
dataname as a
left join
sqltable as b
on
a.number = b.number

);
quit;

В настоящее время я получаю это сообщение об ошибке, но я не уверен, где мой синтаксис неправильный:

ERROR: CLI prepare error: ERROR:  relation does not exist database.ADMIN.dataname
SQL statement: select distinct a.*, b.* from dataname as a left join sqltable as b on a.number and b.number.

1 Ответ

0 голосов
/ 07 мая 2019

После подключения к Netezza с помощью оператора CONNECT TO все, что у вас есть в квадратных скобках, например:

select ... from connection to dbcon (...);
exec (...) by dbcon;

Is внутри в поле Netezza.Созданный вами набор данных с именем dataname присутствует в рабочей библиотеке, в которой выполняется сеанс SAS.

Таким образом, этот вопрос можно решить несколькими способами:

  • Загрузить данные вNetezza
  • Использовать движок libname Netezza для подключения
  • Создать таблицу в Netezza, используя Insert into в SAS

Двигатель Libname

Вы можетеобычно переводят оператор connect to в оператор libname следующим образом:

libname dbcon netezza server="url" database=sandbox user=me password="&password.";

Если вы создаете dataname в библиотеке dbcon, тогда ваш второй запрос должен работать, если у вас есть разрешения на создание таблиц в sandbox база данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...