我正在尝试在SAS隐式SQL中使用Teradata UDF(用户定义的函数),该函数使用LIBNAME Statement建立与Teradata的连接。假设函数名为PTY_DECRYPT,并且在Teradata中名为TEST的数据库中定义。此功能的目的是解密Teradata中的视图列中的值。在SAS中使用Teradata UDF隐式Sql通过
在显式Sql中使用UDF有什么作用。下面我在名为SAMPLE的数据库中存在的称为V_TEST_PERS的视图中使用名为SSN_NBR的列上的函数。
Explcit SQL:
Options debug=DBMS_TIMERS sastrace=',,,d'
sastraceloc=saslog no$stsuffix fullstimer;
Proc Sql;
Connect to TERADATA(User=XXXXX pwd=XXXXX server=XXXXX);
Create Table Final as
select * from connection to teradata
(
Select
sub_id,
SSN_NBR,
TEST.PTY_DECRYPT(SSN_NBR,'T_ssn_test',400,0,0) as SSN_NBR_Decrypt
from SAMPLE.V_TEST_PERS
);
disconnect from teradata;
Quit;
但我想用同样的功能在隐SQL,但它不工作。有关如何使Implicit Sql在隐式Sql中工作并对Implicit SQL进行最小更改的任何想法?
隐式将SQL
Options debug=DBMS_TIMERS sastrace=',,,d'
sastraceloc=saslog no$stsuffix fullstimer;
Libname Td Teradata User=XXXXX pwd=XXXXX server=XXXXX database=SAMPLE ;
Proc sql;
Create table Final as
select
sub_id,
SSN_NBR,
TEST.PTY_DECRYPT(SSN_NBR,'T_ssn_test',400,0,0) as SSN_NBR_Decrypt
from Td.V_TEST_PERS;
Quit;
有趣的解决方法。聪明。使用'ORDER BY 1'让它感到惊讶。 –