gpt4 book ai didi

sql - 在 SAS 的 Proc SQL 中使用宏变量

转载 作者:行者123 更新时间:2023-11-29 13:02:59 27 4
gpt4 key购买 nike

为表架构和表名定义了两个宏变量,它们在SAS(Amazon RedShift 的postgresql 接口(interface))中的proc sql 语句中使用,无法正确读取sql 语句。

%let table_schema = 'sales';
%let table_name = 'summary_table';

proc sql;
connect to ODBC(DSN='redshift_db', user=masteruser password='*pwd');
create table column_names as
select * from connection to odbc(
select distinct(column_name) as col_name from information_schema.columns where table_schema = &table_schema and table_name = &table_name;
);

create table dt as
select * from connection to odbc(
select * from &table_schema..&table_name;
);

QUIT;

第一次建表报错:

错误:CLI 描述错误:错误:列“summary_table”在列中不存在;

“summary_table”确实存在。

第二次建表报错:

错误:CLI 描述错误:错误:“'sales'”处或附近的语法错误;尚未使用该句柄执行任何查询

这也是无效的。

最佳答案

检查你的语法。

查看错误:列“summary_table”在列中不存在;

也就是说,名为“summary_table”的 COLUMN 在名为“columns”的表中不存在。 where 子句试图比较 2 列,而不是一列和一个字符串。

编写不带宏的查询并让它工作。然后尝试将宏放入。

这是 PostGreSQL ODBC 驱动程序而非 SAS 的语法问题。

关于sql - 在 SAS 的 Proc SQL 中使用宏变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432953/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com