リテラル引数としてNULLを使用する場合の動作 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL外部ルーチン プログラミング

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.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を扱うためのデフォルトのパラメータ マッピングの上書きを参照してください。