SAS宏变量与带单引号的文本连接

SAS宏变量与带单引号的文本连接,sas,Sas,我正在使用PROC-SQL。 宏变量为STUDY---输入值为CBYM 我想要像--“CBYM$test”这样的输出 CREATE TABLE TEST AS SELECT OWNER, VIEW_NAME FROM SYS.ALL_VIEWS WHERE OWNER IN ('"&STUDY"$TEST'); 这是一个错误。请帮助我获取输出中带有单引号文本的正确宏变量。首先请注意,SAS不关心字符串文字是否使用单引号或双引号。所以你可以用: "&st

我正在使用
PROC-SQL
。 宏变量为
STUDY---输入值为CBYM
我想要像--“CBYM$test”这样的输出

CREATE TABLE TEST AS
    SELECT OWNER, VIEW_NAME 
    FROM SYS.ALL_VIEWS
    WHERE OWNER IN ('"&STUDY"$TEST');

这是一个错误。请帮助我获取输出中带有单引号文本的正确宏变量。

首先请注意,SAS不关心字符串文字是否使用单引号或双引号。所以你可以用:

"&study$TEST"
如果要将代码直接传递到远程数据库,则可以尝试使用
%BQUOTE()
宏函数来解析单引号内的宏变量引用

%bquote('&study$TEST')
如果宏引用导致问题,则可以使用
%UNQUOTE()
宏函数将其删除

%unquote(%bquote('&study$TEST'))

首先要注意的是,SAS不关心字符串文字是否使用单引号或双引号。所以你可以用:

"&study$TEST"
如果要将代码直接传递到远程数据库,则可以尝试使用
%BQUOTE()
宏函数来解析单引号内的宏变量引用

%bquote('&study$TEST')
如果宏引用导致问题,则可以使用
%UNQUOTE()
宏函数将其删除

%unquote(%bquote('&study$TEST'))
试试(“&Study.$test”),我想这是你的问题,但我现在无法测试。点用于Sas识别宏变量的结尾,正常引用就足够了……或者干脆
OWNER EQ“&STUDY.$TEST”
?业主EQ“&研究$TEST”;他正在工作。谢谢你。试试(&Study.$test),我想这是你的问题,但我现在无法测试。点用于Sas识别宏变量的结尾,正常引用就足够了……或者干脆
OWNER EQ“&STUDY.$TEST”
?业主EQ“&研究$TEST”;他正在工作。非常感谢。