パッケージ org.opengion.fukurou.db
クラス Functions
- java.lang.Object
-
- org.opengion.fukurou.db.Functions
-
public final class Functions extends java.lang.ObjectJavaDB(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 java.lang.StringcheckDelay(java.lang.String date1, java.lang.String date2, double sec1, double sec2, double sec3)日時文字列(yyyyMMddHHmmss)の引数1,2に対して、差分の範囲判定を行います。static java.lang.Stringjoin2(int no, java.lang.String arg2, java.lang.String arg3, java.lang.String arg4)特殊な文字列の連結を行います。static intlengthb(java.lang.String value)length関数のバイト数版 過去に、hsqldb 用に作成したJava関数です。static java.lang.Stringreplace(java.lang.String source, java.lang.String target, java.lang.String replacement)対象の文字列の部分文字列を置換します。static java.lang.Stringsubstrb(java.lang.String value, int start, int length)substr関数のバイト数版 過去に、hsqldb 用に作成したJava関数です。static java.lang.StringtoChar(double val)数値を文字列に変換します。
-
-
-
メソッドの詳細
-
toChar
public static java.lang.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 java.lang.String join2(int no, java.lang.String arg2, java.lang.String arg3, java.lang.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 java.lang.String replace(java.lang.String source, java.lang.String target, java.lang.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 java.lang.String substrb(java.lang.String value, int start, int length) throws java.io.UnsupportedEncodingExceptionsubstr関数のバイト数版 過去に、hsqldb 用に作成したJava関数です。- パラメータ:
value- 変換する文字列start- 変換開始アドレスlength- 変換バイト数- 戻り値:
- 変換後文字列
- 例外:
java.io.UnsupportedEncodingException- 文字のエンコーディングがサポートされていません。- 変更履歴:
- 6.8.5.1 (2018/01/15) org.opengion.hsqldb → org.opengion.fukurou.db にパッケージ変更
-
lengthb
public static int lengthb(java.lang.String value) throws java.io.UnsupportedEncodingExceptionlength関数のバイト数版 過去に、hsqldb 用に作成したJava関数です。- パラメータ:
value- バイト数をカウントする文字列- 戻り値:
- バイト数
- 例外:
java.io.UnsupportedEncodingException- 文字のエンコーディングがサポートされていません。- 変更履歴:
- 6.8.5.1 (2018/01/15) org.opengion.hsqldb → org.opengion.fukurou.db にパッケージ変更
-
checkDelay
public static java.lang.String checkDelay(java.lang.String date1, java.lang.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) 新規作成
-
-