Ich versuche, eine Teradata UDF (benutzerdefinierte Funktion) in einem impliziten SQL-SQL verwenden, die die Verbindung zu Teradata mit LIBNAME-Anweisung.Assure, dass die Funktion PTY_DECRYPT und ist definiert in einer Datenbank namens TEST in Teradata. Der Zweck dieser Funktion besteht darin, Werte in einer Spalte einer Sicht in Teradata zu entschlüsseln.Verwenden einer Teradata-UDF in SAS Implizite Sql-Pass Thru
Was funktioniert, ist die Verwendung der UDF in einer expliziten SQL. Ich verwende die Funktion für eine Spalte namens SSN_NBR in einer Ansicht namens V_TEST_PERS in der Datenbank namens SAMPLE.
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;
Aber ich möchte die gleiche Funktion in einer impliziten SQL verwenden, aber es funktioniert nicht. Irgendwelche Ideen, wie man es in einer Implicit Sql mit minimalen Änderungen im Implicit SQL arbeiten lassen kann?
Implizite 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;
Interessante Abhilfe. Klug. Überrascht durch die Verwendung eines 'ORDER BY 1', um es zur Arbeit zu bringen. –