CREATE FUNCTION æ–‡

CREATE FUNCTIONæ–‡ã?«ã‚ˆã‚Šã€?å¼?ã?§åˆ©ç”¨ã?§ã??ã‚‹Java関数を作æˆ?ã?§ã??ã?¾ã?™ã€‚

関数ã?®æ‰€æœ‰è€…ã?Šã‚ˆã?³ã€?データベースã?®æ‰€æœ‰è€…ã?¯ã€?自動的ã?«é–¢æ•°ã?¸ã?®EXECUTE権é™?を手ã?«å…¥ã‚Œã?¾ã?™ã€‚加ã?ˆã?¦ã€?ä»–ã?®ãƒ¦ãƒ¼ã‚¶ã?¸ã?®æ¨©é™?付与ã?®æ¨©é™?も手ã?«å…¥ã‚Œã?¾ã?™ã€‚関数ã?¨ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã?®æ‰€æœ‰è€…ã?‹ã‚‰ã€?関数ã?®å®Ÿè¡Œæ¨©é™?を剥奪ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。

æ§‹æ–‡

CREATE FUNCTION 関数å?? ( [ 関数ã?®å¼•æ•° 
   [, FunctionParameter] ] * ) RETURNS 返�データ型 [ 関数��素 ] *

関数å??

[ スキーマå??. ] SQL92識別å­?

スキーマå??ã?Œä¸Žã?ˆã‚‰ã‚Œã?ªã?‹ã?£ã?Ÿå ´å?ˆã€?デフォルトã?¯ç?¾åœ¨ã?®ã‚¹ã‚­ãƒ¼ãƒžã?¨ã?ªã‚Šã?¾ã?™ã€‚é™?定ã?•れã?Ÿé–¢æ•°å??ã?«ã?¦ã€?スキーマå??ã?¯SYSã?§å§‹ã?¾ã?£ã?¦ã?¯ã?ªã‚Šã?¾ã?›ã‚“。

関数�引数

[ 引数å?? ] データ型

引数å??ã?¯é–¢æ•°ã?«ã?¦ä¸€æ„?ã?§ã?‚ã‚‹å¿…è¦?ã?Œã?‚りã?¾ã?™ã€‚

データ型�構文��データ型�書�れ����。

注: CREATE FUNCTIONæ–‡ã?®ãƒ‘ラメータã?«ã?§ã??ã?ªã?„データ型ã?Œã?‚りã?¾ã?™ã€‚ã??れã?¯ã€?BLOBã€?CLOBã€?LONG VARCHARã€?LONG VARCHAR FOR BIT DATAã‚„XMLç­‰ã?§ã?™ã€‚

返�データ型

表型 | データ型

データ型�構文�データ型�記述�れ����。

表型

TABLE( 列�素 [, 列�素 ]* )

表関数ã?®è¿”り値ã?®åž‹ã?§ã?™ã€‚ç?¾åœ¨åˆ©ç”¨ã?§ã??ã‚‹ã?®ã?¯Derbyã?®è¡¨é–¢æ•°ã?®å½¢å¼?ã?®ã?¿ã?§ã?™ã€‚ ã?“れらã?¯JDBCã?®ResultSetã‚’è¿”ã?™é–¢æ•°ã?§ã?™ã€‚ より詳細ã?ªæƒ…å ±ã?¯ã€?Derby ディベロッパーズ ガイドã?«è¨˜è¿°ã?•れã?Ÿã€ŒDerbyã?®è¡¨é–¢æ•°ã?®ãƒ—ログラミングã€?ã‚’å?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。

列�素

SQL92識別� データ型

データ型�構文��データ型�記述�れ����。

注: 表関数ã?‹ã‚‰è¿”å?´ã?™ã‚‹æƒ…å ±ã?®åˆ—ã?®åž‹ã‚’ã€?XMLã?¨ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。

関数��素

 {
| LANGUAGE { JAVA }
| EXTERNAL NAME 文字列
| PARAMETER STYLE パラメータ�種類
| { NO SQL | CONTAINS SQL | READS SQL DATA }
| { RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT }
 }

LANGUAGE

JAVA- 関数�Java�クラス��るpublic static�メソッド���呼�れ��。

EXTERNAL NAME string

文字列ã?«ã‚ˆã‚Šã€?関数ã?Œå®Ÿè¡Œã?•れã?Ÿã?¨ã??ã?«å‘¼ã?°ã‚Œã‚‹Javaã?®ãƒ¡ã‚½ãƒƒãƒ‰ã?Œè¨˜è¿°ã?•れã?¾ã?™ã€‚ã?“ã?®æ–‡å­—列ã?¯æ¬¡ã?®æ›¸å¼?ã?§ã?™ã€‚
クラスå??.メソッドå??
�れ�空白を�ん���り��ん。

パラメータ�種類

JAVA | DERBY_JDBC_RESULT_SET

関数ã?¯Java言語ã?Šã‚ˆã?³SQLルーãƒ?ンã?®ä»•様ã?«æ²¿ã?£ã?¦ã€?引数を値渡ã?—ã?—ã?¾ã?™ã€‚INOUTã?¨OUTã?®å¼•æ•°ã?¯å¤‰æ›´å¾Œã?®å€¤ã‚’è¿”ã?›ã‚‹ã‚ˆã?†ã?«ã€?è¦?ç´ ã?Œã?²ã?¨ã?¤ã?®é…?列ã?¨ã?—ã?¦æ¸¡ã?•れã?¾ã?™ã€‚ã?•らã?«çµ?果セットã?¯Javaã?®ãƒ¡ã‚½ãƒƒãƒ‰ã?®ãƒ‘ラメータを経ã?¦ã€?é…?列ã?«æ¸¡ã?—ã?Ÿjava.sql.ResultSet[]åž‹ã?®è¦?ç´ ã?«ã‚ˆã‚Šè¿”ã?™ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚

Derby �長�列�型(�れ�例��Long VarcharやBLOB等�����。)をサ�ート���ん。 �れら�長�列�型を使����る��エラー�発生���。

Derbyã?®è¡¨é–¢æ•°ã?®å ´å?ˆã€?PARAMETER STYLEã?¯å¸¸ã?«DERBY_JDBC_RESULT_SETã?§ã€?ã?“れ以外ã?®å€¤ã?¨ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。表関数ã?¨ã?¯è¡¨åž‹ã‚’è¿”ã?™é–¢æ•°ã?§ã€?JDBCã?®ResultSetã‚’è¿”ã?™ãƒ¡ã‚½ãƒƒãƒ‰ã?«å¯¾å¿œã?—ã?¾ã?™ã€‚ ã??れ以外ã?®å ´å?ˆã?¯ã€?PARAMETER STYLEã?¯å¸¸ã?«JAVAã?§ã?™ã€‚

NO SQL, CONTAINS SQL, READS SQL DATA

�より関数�SQLを発行�る���。も��る�ら��よ��SQLを発行�る�を記述���。

CONTAINS SQL
関数ã?«ã‚ˆã‚Šå¤‰æ›´ã‚‚更新も行ã‚?ã?ªã?„SQL文を実行ã?§ã??ã?¾ã?™ã€‚ 関数ã?«ã?¦è¨±å?¯ã?•れã?¦ã?„ã?ªã?„æ–‡ã?Œå®Ÿè¡Œã?•れã?Ÿå ´å?ˆã€?é?•ã?†ã?¨ã?„ã?†ã‚¨ãƒ©ãƒ¼ã?Œè¿”りã?¾ã?™ã€‚
NO SQL
関数ã?¯SQLを実行ã?§ã??ã?¾ã?›ã‚“。
READS SQL DATA
関数ã?¯æƒ…å ±ã?®æ›´æ–°ã‚’行ã‚?ã?ªã?„SQLを実行ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ 関数ã?«ã?¦è¨±å?¯ã?•れã?¦ã?„ã?ªã?„æ–‡ã?Œå®Ÿè¡Œã?•れã?Ÿå ´å?ˆã€?é?•ã?†ã?¨ã?„ã?†ã‚¨ãƒ©ãƒ¼ã?Œè¿”りã?¾ã?™ã€‚ ã?“れã?¯æ—¢å®šã?§ã?™ã€‚

RETURNS NULL ON NULL INPUT or CALLED ON NULL INPUT

入力ã?®å¼•æ•°ã‚’nullã?«ã?—ã?¦é–¢æ•°ã?Œå‘¼ã?°ã‚Œã‚‹ã?‹ã‚’ã?‚らã‚?ã?—ã?¾ã?™ã€‚ã??ã?®å ´å?ˆã?¯null値ã?¨æ‰±ã?„ã?¾ã?™ã€‚
RETURNS NULL ON NULL INPUT
入力ã?®å¼•æ•°ã?®ã?†ã?¡ã?„ã?šã‚Œã?‹ã?Œnullã?§ã?‚ã?£ã?Ÿå ´å?ˆã€?関数ã?¯å‘¼ã?°ã‚Œã?¾ã?›ã‚“。ã??ã?®ã?¨ã??ã?®å¸°ã‚Šå€¤ã?¯nullã?¨ã?ªã‚Šã?¾ã?™ã€‚
CALLED ON NULL INPUT
関数ã?¯å…¥åŠ›ã?®å¼•æ•°ã‚’nullã?«ã?—ã?¦å‘¼ã?¶ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ã?“ã?®å ´å?ˆã?¯é–¢æ•°ã?Œnullã?®å¼•æ•°ã‚’ã?¨ã?£ã?¦ã‚‚動作ã?™ã‚‹ã‚ˆã?†ã?«ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã?•れã?¦ã?„ã?ªã?‘れã?°ã?ªã‚Šã?¾ã?›ã‚“。関数ã?¯nullã?‚ã‚‹ã?„ã?¯ã??れ以外ã?®å€¤ã‚’è¿”ã?™ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ã?“れã?¯æ—¢å®šã?§ã?™ã€‚
関数ã?®è¦?ç´ ã?¯ã?©ã?®ã‚ˆã?†ã?ªé †åº?ã?§ç?¾ã‚Œã?¦ã‚‚ã?‹ã?¾ã?„ã?¾ã?›ã‚“ã?Œã€?ã??れã?žã‚Œã?®è¦?ç´ ã?¯ä¸€å›žã?—ã?‹ç?¾ã‚Œã?¦ã?¯ã?ªã‚Šã?¾ã?›ã‚“。関数ã?®å®šç¾©ã?«ã?¯ã?“れらã?®è¦?ç´ ã?Œå¿…è¦?ã?§ã?™ã€‚
  • LANGUAGE
  • PARAMETER STYLE
  • EXTERNAL NAME

Example

CREATE FUNCTION TO_DEGREES(RADIANS DOUBLE) RETURNS DOUBLE
PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA
EXTERNAL NAME 'java.lang.Math.toDegrees'
関連資料
CREATE INDEX æ–‡
CREATE PROCEDURE æ–‡
CREATE SCHEMA æ–‡
CREATE SYNONYM æ–‡
CREATE TABLE æ–‡
CREATE TRIGGER æ–‡
CREATE VIEW æ–‡