如何在SAS中进行SQL传递,创建视图或表

时间:2019-04-10 09:10:23

标签: sql sas proc

我正在尝试通过SAS和SQL通过以下方式在数据库上创建视图

PROC sql; 
CONNECT TO odbc AS myuser(dsn=galaxy);              
EXECUTE(
CREATE VIEW DB.SCHEM.table AS
    SELECT * FROM connection to myuser;
    (SELECT * FROM DB.SCHEM.table2)
)by myuser;
QUIT;

但是,出现以下错误

  

错误:CLI准备错误:[Microsoft] [SQL Server本机客户端   11.0] [SQL Server]不正确          关键字“ select”附近的语法。 :[Microsoft] [SQL Server Native Client 11.0] [SQL          服务器]“)”附近的语法不正确。

1 个答案:

答案 0 :(得分:2)

您在EXECUTE中有一个多余的SELECT * FROM connection to myuser;EXECUTE中的代码直接提交到SQL Server,您的无关代码无效。

这是SAS直通校正的。我建议不要将table用作视图名称的一部分。注意:如果您的SQL Server凭据没有创建视图所需的数据库授予,您将看到一条错误消息。

EXECUTE(
  CREATE VIEW DB.SCHEM.table AS
  SELECT * FROM DB.SCHEM.table2
) by myuser ;

来自SQL Server docs for CREATE VIEW

CREATE [ OR ALTER ] VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]   
[ WITH <view_attribute> [ ,...n ] ]   
AS select_statement   
[ WITH CHECK OPTION ]   
[ ; ]