16.20 - 例: 外部UDFの参照 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1145-162K-JPN
Language
日本語 (日本)

この例では、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権限。