2016-03-08 3 views
2

Дело: Я хочу запустить прокси SQL из SAS, и я хочу получить результат в моей работе libary.SQL pass-through SAS/SAS EG - возвращает таблицу

Задача: В журнале говорится, что все в порядке, но нет данных для набора данных? Я большой новичок в этой области - пожалуйста, помогите.

Proc sql; 

connect to odbc as mydb 
    (dsn=x user=x password=x); 


execute ( 
DECLARE @return_value int 
EXEC fpt.usp_Marcus_Buy_and_Sell_amounts 
@Country ='DK', 
@Date ='2016-01-01', 
@Date2='2016-02-01' 

SELECT 'Return Value' = @return_value 







     ) by mydb; 


Quit; 

ответ

1

Пока вы только просите SAS выполнить запрос в базе данных. Чтобы вернуть таблицу в рабочую библиотеку SAS, вам нужно будет включить инструкцию create table на стороне SAS.

например.

Proc sql; 

connect to odbc as mydb 
    (dsn=x user=x password=x); 

create table mydb_return as select * 
     from connection to mydb 
     (EXEC fpt.usp_Marcus_Buy_and_Sell_amounts 
      @Country ='DK', 
      @Date ='2016-01-01', 
      @Date2='2016-02-01' 
     ); 

disconnect from mydb; 

Quit; 

редактировать: изменены заявление в соответствии с замечаниями

+0

Когда я запускаю свой код журнала говорит: ОШИБКА: CLI описать ошибки: [Microsoft] [ODBC SQL Server Driver] [SQL Server] Необходимо объявить скалярная переменная "@return_value". : [Microsoft] [Драйвер SQL-сервера ODBC] [SQL Server] Заявления не могут быть подготовлены. Но я только что объявил переменную «@Return_value»? –

+1

Хорошо, переменные не являются глобальными. Попробуйте прямо вставить 'EXEC fpt.usp_Marcus_Buy_and_Sell_amounts @Country = 'DK', @Date = '2016-01-01', @ Date2 = '2016-02-01'' в инструкцию create table, без объявления и Выбрать. – Jetzler

0

Jetzler ответ велик! Хотя я узнал, что я мог бы сократить код просто:

Proc sql; 

connect to odbc as mydb 
    (dsn=x user=x password=x); 

create table mydb_return as select * 
     from connection to mydb 
     (EXEC fpt.usp_Marcus_Buy_and_Sell_amounts 
@Country ='DK', 
@Date ='2016-01-01', 
@Date2='2016-02-01' 
) ; 

disconnect from mydb; 


Quit; 
Смежные вопросы