リテラル引数としてNULLを使用する場合の動作 - 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/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

SQL文がUDFの引数としてNULLを渡したときにTeradata DatabaseがJavaメソッドを呼び出すかどうかを指定するため、CREATE FUNCTION文またはREPLACE FUNCTION文にRETURNS NULL ON NULL INPUT句またはCALLED ON NULL INPUT句を入れることができます。

入力引数がNULLキーワードの場合の、対応するCREATE FUNCTION文の指定内容 結果
RETURNS NULL ON NULL INPUT メソッドは評価されず、結果は常にNULLになります。
CALLED ON NULL INPUT メソッドにはNULL入力引数が渡されます。
いずれの句も指定しない

NULLリテラルを入力引数として適切に処理するため、CREATE FUNCTION文またはREPLACE FUNCTION文のパラメータ リストのSQLデータ型がJavaプリミティブにマッピングされる場合は、Java UDFではデフォルトのマッピング規則を使用できません。

デフォルトのマッピングを上書きし、NULLリテラルを入力引数として処理できるJavaクラスにSQLデータ型をマッピングするには、CREATE FUNCTION文またはREPLACE FUNCTION文のEXTERNAL NAME句において、Javaメソッドのパラメータ リストのマッピングを明示的に指定する必要があります。

SQLデータ型がJavaデータ型にマッピングされる仕組みについては、SQLデータ型のマッピングを参照してください。デフォルトのマッピングを上書きする例については、例: NULLを扱うためのデフォルトのパラメータ マッピングの上書きを参照してください。