例: 外部UDFの参照 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/tpt1555966086716.ditamap
dita:ditavalPath
ja-JP/tpt1555966086716.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

この例では、MySQLUDFという名前のSQL UDFが、RETURN文のMyExtUDFという名前の外部UDFを参照しています。

次の関数の定義と問合わせについて考えてみます。

   CREATE FUNCTION Test.MySQLUDF (a INT, b INT, c INT)
   RETURNS INT
   LANGUAGE SQL
   CONTAINS SQL
   DETERMINISTIC
   SQL SECURITY DEFINER
   COLLATION INVOKER
   INLINE TYPE 1
   RETURN a + b * MyExtUDF(a, b) - c;
   SELECT Test.MySQLUDF(t1.a1, t2.a2, t3.a3) FROM t1, t2, t3;

SELECT文を実行するユーザーは、次の権限を持っている必要があります。

  • t1、t2、およびt3テーブル、これらのテーブルを格納するデータベース、またはt1.a1、t2.a2、およびt3.a3列に対するSELECT権限。
  • MySQLUDF、またはTestという名前のデータベースに対するEXECUTE FUNCTION権限。

SQL UDFはMyExtUDFを参照するため、次の権限も確認されます。

  • MySQLUDFの作成者が存在し、MyExtUDFまたはMyExtUDFを格納するデータベースに対するEXECUTE FUNCTION権限。
  • Testという名前のデータベース(MySQLUDFの直接所有者)が、MyExtUDFまたはMyExtUDFを格納するデータベースに対するEXECUTE FUNCTION権限。