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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/djk1612415574830.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.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権限。