尝试连接两个数据集,但连接基于两种不同的数据类型(数字和文本)
SELECT *
FROM D1.T1 c
INNER JOIN
D1.T2 d
on c.CNUMBER=INPUT(d.CNUMBER, 8.) ;
这不起作用。
我可以创建一个新数据集(复制现有数据集并添加数字列),如下所示:
CNUMBER1=CNUMBER*1;
run;
然后,当我加入使用此副本时,它可以工作......但我实际上想要尝试通过直接Oracle连接找出方法。 在Oracle中,我会这样做:
on to_char(c.CNUMBER)=to_char(c.CNUMBER)
答案 0 :(得分:1)
大肆猜测你真正想要的东西:
PROC SQL;
CONNECT TO ORACLE (...);
CREATE TABLE oracle_results AS
SELECT * FROM CONNECTION TO ORACLE (
SELECT *
FROM D1.T1 c
INNER JOIN
D1.T2 d
on to_char(c.CNUMBER)=d.CNUMBER);
DISCONNECT FROM ORACLE;
QUIT;
将SAS会话连接到Oracle,执行显式直通SQL查询并将结果传递回SAS表oracle_results
。用Oracle连接凭证替换这些点。