パッケージ org.opengion.fukurou.db
クラス Functions
- java.lang.Object
-
- org.opengion.fukurou.db.Functions
-
public final class Functions extends Object
JavaDB(derby) や、hsqldb に対する、Javaの拡張組込み関数です。 staticメソッドとして、関数を定義します。引数や返り値は、各データベースの 定義に準拠します。① JavaDB の場合 【概要】 実行するデータベースから見えるところに、ファイルを配置する必要があります。 java8 までなら、Javaのエクステンション(JAVA_HOME\)jre\lib\ext などですが、 java9以降は、CLASSPATH に設定します。 openGionでは、bin/const.bat で、OG_CLASSPATH 環境変数にパスを通して、 使用しています。 標準の Java staticメソッドを FUNCTION 定義することも出来ます。 【設定】 JavaDBに FUNCTION を定義します。(サンプル) DROP FUNCTION TO_CHAR; CREATE FUNCTION TO_CHAR ( VAL DOUBLE ) RETURNS VARCHAR(20) DETERMINISTIC -- 引数が同じなら常に同じ値を返すことを示す.(省略時はnot deterministic) PARAMETER STYLE JAVA -- 戻り値のタイプ NO SQL LANGUAGE JAVA -- 関数の中でSQLは実行しないことを示す EXTERNAL NAME 'org.opengion.fukurou.db.Functions.toChar' ; ② HSQLDB の場合 【概要】
- 変更履歴:
- 6.8.5.1 (2018/01/15) org.opengion.javadb → org.opengion.fukurou.db にパッケージ変更
- 機能分類
- 拡張組込み関数
- バージョン
- 1.1.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK8.0,
-
-
メソッドの概要
すべてのメソッド staticメソッド concreteメソッド 修飾子とタイプ メソッド 説明 static String
checkDelay(String date1, String date2, double sec1, double sec2, double sec3)
日時文字列(yyyyMMddHHmmss)の引数1,2に対して、差分の範囲判定を行います。static String
join2(int no, String arg2, String arg3, String arg4)
特殊な文字列の連結を行います。static int
lengthb(String value)
length関数のバイト数版 過去に、hsqldb 用に作成したJava関数です。static String
replace(String source, String target, String replacement)
対象の文字列の部分文字列を置換します。static String
substrb(String value, int start, int length)
substr関数のバイト数版 過去に、hsqldb 用に作成したJava関数です。static String
toChar(double val)
数値を文字列に変換します。
-
-
-
メソッドの詳細
-
toChar
public static String toChar(double val)
数値を文字列に変換します。 この関数は、引数の double が、小数点を含まない場合は、 小数点以下を出しません。 JavaDBの場合、数字と文字列の連結が出来ないため、文字列変換関数を用意します。 DROP FUNCTION TO_CHAR; CREATE FUNCTION TO_CHAR ( VAL DOUBLE ) RETURNS VARCHAR(20) DETERMINISTIC -- 引数が同じなら常に同じ値を返すことを示す.(省略時はnot deterministic) PARAMETER STYLE JAVA -- 戻り値のタイプ NO SQL LANGUAGE JAVA -- 関数の中でSQLは実行しないことを示す EXTERNAL NAME 'org.opengion.fukurou.db.Functions.toChar' ;- パラメータ:
val
- 文字列に変換すべき数値- 戻り値:
- 変換した文字列
- 変更履歴:
- 6.7.3.0 (2017/01/27) 新規作成, 6.8.5.1 (2018/01/15) org.opengion.javadb → org.opengion.fukurou.db にパッケージ変更, 6.9.8.0 (2018/05/28) FindBugs:浮動小数点の等価性のためのテスト
-
join2
public static String join2(int no, String arg2, String arg3, String arg4)
特殊な文字列の連結を行います。 これは、第1引数の数字と、第2、第3、第4の文字列をスペースで連結した文字列を返します。 引数の個数が、可変に出来ないため、完全に決め打ちです。 DROP FUNCTION JOIN2; CREATE FUNCTION JOIN2 ( INTEGER , VARCHAR(2000) , VARCHAR(2000) , VARCHAR(2000) ) RETURNS VARCHAR(4000) DETERMINISTIC -- 引数が同じなら常に同じ値を返すことを示す.(省略時はnot deterministic) PARAMETER STYLE JAVA -- 戻り値のタイプ NO SQL LANGUAGE JAVA -- 関数の中でSQLは実行しないことを示す EXTERNAL NAME 'org.opengion.fukurou.db.Functions.join2' ;- パラメータ:
no
- 第1引数の数字arg2
- 第2引数arg3
- 第3引数arg4
- 第4引数- 戻り値:
- 連結したした文字列
- 変更履歴:
- 6.7.3.0 (2017/01/27) 新規作成, 6.8.5.1 (2018/01/15) org.opengion.javadb → org.opengion.fukurou.db にパッケージ変更
-
replace
public static String replace(String source, String target, String replacement)
対象の文字列の部分文字列を置換します。 ただし、source、target、replacement のどれかが、null(ゼロ文字列)の場合は、 処理を実行せず、source をそのまま返します。 DROP FUNCTION REPLACE; CREATE FUNCTION REPLACE ( VARCHAR(2000) , VARCHAR(2000) , VARCHAR(2000) ) RETURNS VARCHAR(4000) DETERMINISTIC -- 引数が同じなら常に同じ値を返すことを示す.(省略時はnot deterministic) PARAMETER STYLE JAVA -- 戻り値のタイプ NO SQL LANGUAGE JAVA -- 関数の中でSQLは実行しないことを示す EXTERNAL NAME 'org.opengion.fukurou.db.Functions.replace' ;- パラメータ:
source
- 対象の文字列target
- 置換したい文字列replacement
- 置換する文字列- 戻り値:
- 置換した文字列。
- 変更履歴:
- 6.7.3.0 (2017/01/27) 新規作成, 6.8.5.1 (2018/01/15) org.opengion.javadb → org.opengion.fukurou.db にパッケージ変更, 6.9.8.0 (2018/05/28) source、target、replacement のどれかが、null(ゼロ文字列)の場合は、source を返す。
-
substrb
public static String substrb(String value, int start, int length) throws UnsupportedEncodingException
substr関数のバイト数版 過去に、hsqldb 用に作成したJava関数です。- パラメータ:
value
- 変換する文字列start
- 変換開始アドレスlength
- 変換バイト数- 戻り値:
- 変換後文字列
- 例外:
UnsupportedEncodingException
- 文字のエンコーディングがサポートされていません。- 変更履歴:
- 6.8.5.1 (2018/01/15) org.opengion.hsqldb → org.opengion.fukurou.db にパッケージ変更
-
lengthb
public static int lengthb(String value) throws UnsupportedEncodingException
length関数のバイト数版 過去に、hsqldb 用に作成したJava関数です。- パラメータ:
value
- バイト数をカウントする文字列- 戻り値:
- バイト数
- 例外:
UnsupportedEncodingException
- 文字のエンコーディングがサポートされていません。- 変更履歴:
- 6.8.5.1 (2018/01/15) org.opengion.hsqldb → org.opengion.fukurou.db にパッケージ変更
-
checkDelay
public static String checkDelay(String date1, String date2, double sec1, double sec2, double sec3)
日時文字列(yyyyMMddHHmmss)の引数1,2に対して、差分の範囲判定を行います。 範囲判定を行う引数 sec1、sec2、sec3 引数には、それぞれ(秒)レベルの値を指定します。 上記の引数の値が、0 の場合は、判定を回避します。 sec1引数と比べて、小さければ 0 を、大きければ 1 を返します。 sec2引数と比べて、小さければ sec1引数の結果を、大きければ 2 を返します。 sec3引数と比べて、小さければ sec2引数の結果を、大きければ 3 を返します。 通常、sec1、sec2、sec3 と、順番に大きな値にしておきます。 小さいと判定された時点で、判定処理は終了します。 date2 - date1 <= sec1 ⇒ 0 > sec1 ⇒ 1 > sec2 ⇒ 2 > sec3 ⇒ 3 date1,date2 のどちらかが、null,ゼロ文字列の場合は、判定しません。(return "0")- パラメータ:
date1
- 前比較日時文字列(yyyyMMddHHmmss)date2
- 後比較日時文字列(yyyyMMddHHmmss)sec1
- 比較する秒sec2
- 比較する秒sec3
- 比較する秒- 戻り値:
- 判定結果
- 変更履歴:
- 7.0.5.0 (2019/09/16) 新規作成
-
-