SQL 直通 SAS/SAS EG - return table
SQL pass-through SAS/ SAS EG - return a table
案例:
我想 运行 从 SAS 传递 SQL 并且我想在我的工作库中输出。
问题:
日志告诉我一切都很好但是没有数据集输出?
我是这方面的大菜鸟 - 请帮忙。
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;
到目前为止,您只是要求 SAS 在数据库中执行查询。
要将 table 返回到您的 SAS 工作库,您需要在 SAS 端包含一个 create table 语句。
例如
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;
编辑:根据评论更改了语句
杰兹勒回答得很好!
虽然我发现我可以将代码减少到 :
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;
案例: 我想 运行 从 SAS 传递 SQL 并且我想在我的工作库中输出。
问题: 日志告诉我一切都很好但是没有数据集输出? 我是这方面的大菜鸟 - 请帮忙。
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;
到目前为止,您只是要求 SAS 在数据库中执行查询。 要将 table 返回到您的 SAS 工作库,您需要在 SAS 端包含一个 create table 语句。
例如
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;
编辑:根据评论更改了语句
杰兹勒回答得很好! 虽然我发现我可以将代码减少到 :
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;