【发布时间】:2016-08-20 14:50:26
【问题描述】:
我正在尝试在 SAS 隐式 SQL 中使用 Teradata UDF(用户定义函数),该 SQL 使用 LIBNAME 语句建立与 Teradata 的连接。假设该函数称为 PTY_DECRYPT 并在 Teradata 中称为 TEST 的数据库中定义。此函数的目的是解密 Teradata 中视图列中的值。
有效的是在显式 Sql 中使用 UDF。下面我在名为 SAMPLE 的数据库中名为 V_TEST_PERS 的视图中使用名为 SSN_NBR 的列上的函数。
显式 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 中使用相同的函数,但它不起作用。关于如何使其在隐式 Sql 中工作且对隐式 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;
【问题讨论】:
标签: sql sas teradata user-defined-functions