我正在嘗試在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'讓它感到驚訝。 –