帳票生成API PL/SQLリファレンス
ドキュメント対応バージョン
| バージョン | 更新日 | 
|---|---|
| DBXFORM - Version 1 | 2025/03/21 | 
目次
- 帳票生成API PL/SQLリファレンス
- ドキュメント対応バージョン
 - 目次
 - 初めに
 - DBXFORM パッケージ
- SET_RESULT_FORM プロシージャ
 - GET_RESULT_FORM ファンクション
 - SET_OUTPUT_FORMAT プロシージャ
 - SET_LOCAL_FILE プロシージャ
 - SET_MERGEPDF_NUMBERING プロシージャ
 - ADD_SQL_KEY プロシージャ(非推奨)
 - ADD_BIND_VARIABLE_DATA プロシージャ
 - ADD_TEMPLATE_FILE プロシージャ(ファイル追加シグネチャ)
 - ADD_TEMPLATE_FILE プロシージャ(帳票テンプレートJSONファイル追加シグネチャ)
 - GET_REQUEST_JSON ファンクション
 - GET_SQL_DATA ファンクション
 - CHECK_TEMPLATE_JSON プロシージャ
 - IS_VALID_OUTPUT_FORMAT ファンクション
 
 - DBXAP_UTIL パッケージ
 - DBXAP_DATALOAD パッケージ
 - DBXDOC パッケージ
- GET_INIT_DOCJSON ファンクション
 - GET_INIT_SECTION ファンクション
 - GET_INIT_BLOCK ファンクション
 - GET_TEXT_BLOCK_OPTION ファンクション
 - GET_TITLE_BLOCK_OPTION ファンクション
 - GET_CODE_BLOCK_OPTION ファンクション
 - GET_FOOTNOTE_BLOCK_OPTION ファンクション
 - GET_LIST_BLOCK_OPTION ファンクション
 - GET_TABLE_BLOCK_OPTION ファンクション
 - GET_TEXT_JSON ファンクション
 - GET_IMAGE_URL ファンクション
 - ADD_SECTION プロシージャ
 - CONCAT2SECTION プロシージャ
 - ADD_CHILD_BLOCK プロシージャ
 - ADD_TEXT プロシージャ(テキストJSONのシグネチャ)
 - ADD_TEXT プロシージャ(文字列のシグネチャ)
 - APPEND_ROW プロシージャ
 - GET_TITLE_BLOCK ファンクション(テキストJSONのシグネチャ)
 - GET_TITLE_BLOCK ファンクション(文字列のシグネチャ)
 - GET_TEXT_BLOCK ファンクション(テキストJSONのシグネチャ)
 - GET_TEXT_BLOCK ファンクション(文字列のシグネチャ)
 - GET_TABLE_BLOCK ファンクション(SQLデータのシグネチャ)
 - GET_TABLE_BLOCK ファンクション(SQL文のシグネチャ)
 - ADD_CHILD_LIST プロシージャ
 - ADD_LIST_ITEM プロシージャ
 - CHECK_DOCJSON プロシージャ
 - CHECK_BLOCK_JSON プロシージャ
 
 
 
初めに
本書は、帳票ファイルを生成する際に必要となるPL/SQLパッケージのインターフェースを説明します。
| 想定読者 | 
|---|
| アプリケーション開発者 | 
DBXFORM パッケージ
SET_RESULT_FORM プロシージャ
SQL実行結果のデータが埋め込まれた帳票ファイルデータを生成します。生成したファイルはp_blob_locに指定したLOBロケータに設定します。
LOBロケータにすでにデータが存在する場合、LOBロケータの内容を上書きします。
PROCEDURE "SET_RESULT_FORM"(
  p_blob_loc                     IN OUT NOCOPY BLOB,
  p_template_json                IN     JSON_OBJECT_T,
  p_sql_variable_json            IN     JSON_OBJECT_T default NULL,
  p_file_estimate_limit          IN     NUMBER default 100
)
| 引数 | 説明 | 
|---|---|
| p_blob_loc | 変換先のLOBロケータを指定します。 | 
| p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 | 
| p_sql_variable_json | SQLに指定したハッシュ(#)で囲まれたリテラル文字を変換するJSONオブジェクトを指定します。ADD_BIND_VARIABLE_DATAプロシージャでキーを追加します。 Version 1.6までは引数名をp_sql_key_jsonとしてください。 | 
| p_file_estimate_limit | SQLのデータから予測されるファイルの出力件数の制限値です。 | 
GET_RESULT_FORM ファンクション
p_template_jsonに指定した帳票テンプレートJSONファイルを基に、SQL実行結果のデータが埋め込まれた帳票ファイルをBLOB形式で戻します。戻されるBLOBはSET_RESULT_FORMプロシージャを利用した場合と同じファイルです。
DBXFORM.GET_RESULT_FORM(
  p_template_json                IN     JSON_OBJECT_T,
  p_sql_variable_json            IN     JSON_OBJECT_T default NULL,
  p_file_estimate_limit          IN     NUMBER default 100
) RETURN BLOB
| 引数 | 説明 | 
|---|---|
| p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 | 
| p_sql_variable_json | SQLに指定したハッシュ(#)で囲まれたリテラル文字を変換するJSONオブジェクトを指定します。ADD_BIND_VARIABLE_DATAプロシージャでキーを追加します。Version 1.6までは引数名をp_sql_key_jsonとしてください。 | 
| p_file_estimate_limit | SQLのデータから予測されるファイルの出力件数の制限値です。 | 
SET_OUTPUT_FORMAT プロシージャ
p_template_jsonに指定した帳票テンプレートJSONファイルで出力するファイルの拡張子を変更します。例えば、p_extensionにhtml,pdf,md,docjson等を指定します。
PROCEDURE "SET_OUTPUT_FORMAT" (
  p_template_json                IN OUT NOCOPY JSON_OBJECT_T,
  p_extension                    IN     VARCHAR2
)
| 引数 | 説明 | 
|---|---|
| p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 | 
| p_extension | 出力するファイルの拡張子を指定します。 | 
SET_LOCAL_FILE プロシージャ
p_template_jsonに指定した帳票テンプレートJSONファイルに画像などのファイルを追加します。例えば、htmlのimgタグに画像のファイルパス(p_file_path)が指定されている場合などに利用できます。
PROCEDURE "SET_LOCAL_FILE" (
  p_template_json                IN OUT NOCOPY JSON_OBJECT_T,
  p_add_file                     IN     BLOB,
  p_file_path                    IN     VARCHAR2
)
| 引数 | 説明 | 
|---|---|
| p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 | 
| p_add_file | テンプレートで参照するファイルを指定します。 | 
| p_file_path | ファイルパスは./から始まる必要があり、p_template_json内のテンプレートファイルの記載と一致する必要があります。 | 
SET_MERGEPDF_NUMBERING プロシージャ
p_template_jsonに指定したPDF結合用帳票テンプレートJSONファイルのナンバリングオプションを変更します。各オプションの引数(p_skip_page,p_start_number,p_font_size,p_format_string)に設定した値で更新します。
オプションの引数に値を設定しない場合は、元のオプションは変更されずに処理を終了します。
PROCEDURE "SET_MERGEPDF_NUMBERING" (
  p_template_json                IN OUT NOCOPY JSON_OBJECT_T,
  p_skip_page                    IN     NUMBER   default NULL,
  p_start_page_number            IN     NUMBER   default NULL,
  p_font_size                    IN     NUMBER   default NULL,
  p_format_string                IN     VARCHAR2 default NULL
)
| 引数 | 説明 | 
|---|---|
| p_template_json | DBXFORM帳票開発アプリにて作成したPDF結合用帳票テンプレートJSONファイルを指定します。 | 
| p_skip_page | 描画テキストを表示しないページ(表紙など)を指定します。 | 
| p_start_page_number | 表示開始時のページ番号を指定します。 | 
| p_font_size | 描画テキストの文字サイズを指定します。 | 
| p_format_string | 描画するテキストを指定します。(ページ番号は#PAGE#、最大ページ数は#TOTALPAGE#で指定) | 
ADD_SQL_KEY プロシージャ(非推奨)
※ 将来バージョンで廃止されます。
帳票テンプレートJSONファイルに定義されたSQLの、変数に入れる値を指定します。対象のSQLはSQLグループに設定した各SQLです。
SQLに記載した変数をp_keyに指定し、p_dataに指定した値に変換してSQLを実行します。p_keyに指定する値はハッシュ(#)を除いた値です: #<p_keyに指定する値>#。
p_sql_key_jsonに指定したJSONオブジェクトに変数値が追加されます。実行結果のJSONオブジェクトをGET_RESULT_FORMファンクションで指定します。
DBXFORM.ADD_SQL_KEY(
    p_sql_key_json   IN OUT NOCOPY JSON_OBJECT_T,
    p_key            IN     VARCHAR2,
    p_data           IN     VARCHAR2,
    p_value_type     IN     VARCHAR2
)
| 引数 | 説明 | 
|---|---|
| p_sql_key_json | 変数を保存するためのJSONオブジェクトです | 
| p_key | SQLグループで指定したSQLの変数を指定するための変数名です。 | 
| p_data | 変数に指定される変換値です。 | 
| p_value_type | 変換値のデータ種別です。(string/number) | 
例)p_sql_key_jsonに指定したJSONオブジェクトに、p_key,p_data,p_value_typeに指定した値を保存します。
-- SQLグループのSQL例)帳票テンプレートJSONに定義されたSQLのIDとSUB_IDを指定
-- select
--   DISPLAY_VALUE_01,
--   DISPLAY_VALUE_02
-- from SAMPLE_TABLE
-- where ID = #ID#
--   and SERIAL_NO = #SUB_ID#
DECLARE
  l_json   JSON_OBJECT_T;
BEGIN
  l_json := JSON_OBJECT_T();
  DBXFORM.ADD_SQL_KEY(
    p_sql_key_json   => l_json,
    p_key            => 'ID',
    p_data           => 1,
    p_value_type     => 'number'
  );
  DBXFORM.ADD_SQL_KEY(
    p_sql_key_json   => l_json,
    p_key            => 'SUB_ID',
    p_data           => 'A20',
    p_value_type     => 'string'
  );
END;
l_jsonの保存内容
{ "ID":{"data":["1"],"value_type":"number"},
  "SUB_ID":{"data":["A20"],"value_type":"string"}}
ADD_BIND_VARIABLE_DATA プロシージャ
※ 将来バージョンで廃止されます。
帳票テンプレートJSONファイルに定義されたSQLの、変数に入れる値を指定します。対象のSQLはSQLグループに設定した各SQLです。
SQLに記載した変数をp_variable_nameに指定し、p_dataに指定した値に変換してSQLを実行します。p_variable_nameに指定する値はハッシュ(#)を除いた値です: #<p_keyに指定する値>#。
p_sql_variable_jsonに指定したJSONオブジェクトに変数値が追加されます。実行結果のJSONオブジェクトをGET_RESULT_FORMファンクションで指定します。
DBXFORM.ADD_BIND_VARIABLE_DATA(
    p_sql_variable_json IN OUT NOCOPY JSON_OBJECT_T,
    p_variable_name     IN     VARCHAR2,
    p_data              IN     VARCHAR2,
    p_value_type        IN     VARCHAR2
)
| 引数 | 説明 | 
|---|---|
| p_sql_variable_json | 変数を保存するためのJSONオブジェクトです | 
| p_variable_name | SQLグループで指定したSQLの変数を指定するための変数名です。 | 
| p_data | 変数に指定される変換値です。 | 
| p_value_type | 変換値のデータ種別です。(string/number) | 
例)p_sql_variable_jsonに指定したJSONオブジェクトに、p_variable_name,p_data,p_value_typeに指定した値を保存します。
-- SQLグループのSQL例)帳票テンプレートJSONに定義されたSQLのIDとSUB_IDを指定
-- select
--   DISPLAY_VALUE_01,
--   DISPLAY_VALUE_02
-- from SAMPLE_TABLE
-- where ID = #ID#
--   and SERIAL_NO = #SUB_ID#
DECLARE
  l_json   JSON_OBJECT_T;
BEGIN
  l_json := JSON_OBJECT_T();
  DBXFORM.ADD_BIND_VARIABLE_DATA(
    p_sql_variable_json => l_json,
    p_variable_name     => 'ID',
    p_data              => 1,
    p_value_type        => 'number'
  );
  DBXFORM.ADD_BIND_VARIABLE_DATA(
    p_sql_variable_json => l_json,
    p_variable_name     => 'SUB_ID',
    p_data              => 'A20',
    p_value_type        => 'string'
  );
END;
l_jsonの保存内容
{ "ID":{"data":["1"],"value_type":"number"},
  "SUB_ID":{"data":["A20"],"value_type":"string"}}
ADD_TEMPLATE_FILE プロシージャ(ファイル追加シグネチャ)
帳票テンプレートJSONファイルに指定したファイルを追加します。 ファイル変換またはPDF結合で利用されます。 対象がPDF結合用帳票テンプレートJSONで結合ファイルが複数ある場合、結合したい順番で順次実行します。
DBXFORM.ADD_TEMPLATE_FILE (
    p_template_json                IN OUT NOCOPY JSON_OBJECT_T,
    p_file                         IN     BLOB
)
| 引数 | 説明 | 
|---|---|
| p_template_json | 帳票テンプレートJSONファイルを指定します。ファイルが追加されたJSONが戻ります。 | 
| p_file | 結合対象PDFファイルのBLOBを指定します。 | 
ADD_TEMPLATE_FILE プロシージャ(帳票テンプレートJSONファイル追加シグネチャ)
PDF結合用帳票テンプレートJSONファイルに、帳票テンプレートJSONファイルを直接追加する場合に利用します。
DBXFORM.ADD_TEMPLATE_FILE (
    p_template_json                IN OUT NOCOPY JSON_OBJECT_T,
    p_add_template_json            IN     JSON_OBJECT_T,
    p_sql_variable_json            IN     JSON_OBJECT_T
)
| 引数 | 説明 | 
|---|---|
| p_template_json | 帳票テンプレートJSONファイルを指定します。p_add_template_jsonに指定した帳票テンプレートJSONが追加されたJSONが戻ります。 | 
| p_add_template_json | 追加対象の帳票テンプレートJSONファイルを指定します。 | 
| p_sql_variable_json | ADD_BIND_VARIABLE_DATAプロシージャにて生成したJSONオブジェクトを指定します。Version 1.6までは引数名をp_sql_key_jsonとしてください。 | 
GET_REQUEST_JSON ファンクション
PL/SQL以外から帳票WebAPIのコールを行う場合などに利用します。このファンクションから生成されるデータをBodyとし、帳票WebAPIのコールを行います。p_template_jsonに指定した帳票テンプレートJSONファイルと、p_sql_dataに指定したSQL結果データを結合しリクエストデータを生成します。PDF結合用帳票テンプレートJSONの場合、p_sql_dataにはNULLを指定します。
FUNCTION "GET_REQUEST_JSON" (
  p_template_json                 IN     JSON_OBJECT_T,
  p_sql_data                      IN     JSON_OBJECT_T
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 | 
| p_sql_data | GET_SQL_DATAファンクションにて生成したSQL結果データを指定します。 | 
GET_SQL_DATA ファンクション
帳票テンプレートJSONファイルに指定したSQLグループのデータを取得できます。
FUNCTION "GET_SQL_DATA"(
    p_template_json                IN     JSON_OBJECT_T,
    p_sql_variable_json            IN     JSON_OBJECT_T
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_template_json | 帳票テンプレートJSONファイルを指定します。テンプレートの中にあるSQLを利用します | 
| p_sql_variable_json | ADD_BIND_VARIABLE_DATAプロシージャにて生成したJSONオブジェクトを指定します。Version 1.6までは引数名をp_sql_key_jsonとしてください。 | 
CHECK_TEMPLATE_JSON プロシージャ
帳票テンプレートJSONのデータ構造が正しいかをチェックします。 データ構造が正しくない場合、エラー・メッセージにてエラー箇所とエラー理由を示します。
PROCEDURE "CHECK_TEMPLATE_JSON"(
    p_template_json                IN     JSON_OBJECT_T
)
| 引数 | 説明 | 
|---|---|
| p_template_json | 帳票テンプレートJSONファイルを指定します。指定したテンプレートのデータ構造をチェックします。 | 
IS_VALID_OUTPUT_FORMAT ファンクション
入力帳票形式と出力帳票形式の組み合わせをチェックします。 許可された組み合わせの場合は1を、許可されていない組み合わせの場合は0を戻します。
FUNCTION "IS_VALID_OUTPUT_FORMAT"(
    p_input_format                   IN     VARCHAR2,
    p_output_format                  IN     VARCHAR2
) return NUMBER
| 引数 | 説明 | 
|---|---|
| p_input_format | 入力帳票形式を指定します。 | 
| p_output_format | 出力帳票形式を指定します。 | 
DBXAP_UTIL パッケージ
DOWNLOAD_FILE プロシージャ
引数に指定したBLOBファイルをダウンロードします。Oracle APEXから利用します。
DBXAP_UTIL.DOWNLOAD_FILE (
    p_file_name                 IN     VARCHAR2,
    p_file_data                 IN OUT NOCOPY BLOB
)
| 引数 | 説明 | 
|---|---|
| p_file_name | ダウンロードするファイル名を指定します。 | 
| p_file_data | ダウンロードするファイルです。 | 
DBXAP_DATALOAD パッケージ
SQL2JSON ファンクション
p_sql_stmtに指定したSQL問合せから結果データを取得し、JSON形式のデータをBLOBで戻します。
p_sql_variable_jsonには、p_sql_stmt内の#で囲まれた文字列(SQLバインド変数)を置換するためのデータを指定します。このデータはDBXAP_DATALOAD.ADD_BIND_VARIABLE_DATAで生成します。
FUNCTION "SQL2JSON" (
  p_sql_stmt                  IN     VARCHAR2,
  p_header_mapping_list       IN     T_DATALOAD_HEADER     default NULL,
  p_sql_variable_json         IN     JSON_OBJECT_T         default NULL,
  p_group_columns             IN     APEX_T_VARCHAR2       default NULL,
  p_force_group_format        IN     NUMBER                default 0
) RETURN BLOB
| 引数 | 説明 | 
|---|---|
| p_sql_stmt | SQLの問合せを指定します。 | 
| p_header_mapping_list | 列名とヘッダー名の組み合わせを指定することで、出力結果の列名をヘッダー名に入れ替えます。 | 
| p_sql_variable_json | p_sql_stmt内の#で囲まれた文字列(SQLバインド変数)を置換するためのデータを指定します。 | 
| p_group_columns | グループ化するカラム群を指定します。 | 
| p_force_group_format | SQL結果データを強制的にのグループ化するかを指定します。0(False)の場合はグループ化せず、1(True)の場合はグループ化します。 | 
DBXAP_DATALOAD.T_DATALOAD_HEADERはHEADER_NAMEとCOLUMN_NAMEを組み合わせた型です。
type "REC_DATALOAD_HEADER" is record (
    "HEADER_NAME"               VARCHAR2(255)
  , "COLUMN_NAME"               VARCHAR2(128)
);
type "T_DATALOAD_HEADER" is table of "REC_DATALOAD_HEADER";
ADD_BIND_VARIABLE_DATA プロシージャ
SQLバインド変数のデータを追加します。
DBXAP_DATALOAD.SQL2JSON等で指定するSQL問合せ(p_sql_stmt)に記載された、#で囲まれた文字列を、指定したデータに置換します。
PROCEDURE "ADD_BIND_VARIABLE_DATA"(
  p_sql_variable_json   IN OUT NOCOPY JSON_OBJECT_T,
  p_variable_name       IN     VARCHAR2,
  p_data                IN     VARCHAR2,
  p_value_type          IN     VARCHAR2   -- string/number/timestamp
);
| 引数 | 説明 | 
|---|---|
| p_sql_variable_json | SQLバインド変数のデータを追加するJSONオブジェクトを指定します。データが空の場合は新規作成します。 | 
| p_variable_name | #で囲まれた文字列を指定します。文字列の指定に#は含みません。 | 
| p_data | 置換するデータを指定します。 | 
| p_value_type | 置換するデータの型を指定します。string,number,timestampから指定可能です。 | 
DBXDOC パッケージ
GET_INIT_DOCJSON ファンクション
ドキュメントJSONを作成します。 ドキュメントJSONは以下要素で構成されます。
- section_seq(list): セクションの順序を配列で格納します。
 - sections(object): セクションJSONを格納します。
 
FUNCTION "GET_INIT_DOCJSON"
RETURN JSON_OBJECT_T;
| 引数 | 説明 | 
|---|---|
| - | - | 
GET_INIT_SECTION ファンクション
セクションJSONを作成します。 セクションJSONは以下要素で構成されます。
- section_data(list): ブロックJSONを配列で格納します。
 
FUNCTION "GET_INIT_SECTION"
RETURN JSON_OBJECT_T;
| 引数 | 説明 | 
|---|---|
| - | - | 
GET_INIT_BLOCK ファンクション
ブロックJSONを作成します。 ブロックJSONは以下要素で構成されます。
- block_type(str): ブロックJSONのタイプを指定します。
 - options(object): ブロックJSONのオプションを指定します。(ブロックJSONのタイプにより格納可能なオプションが変わります。)
 - data(list): データを配列で格納します。(ブロックJSONのタイプにより格納可能なデータが変わります。)
 
p_block_typeにtext,title,code,footnote,list,tableを指定した場合、デフォルトのオプションが付与されます。
p_options_jsonに値を指定すると、デフォルトのオプションはp_options_jsonの値に上書きされます。
FUNCTION "GET_INIT_BLOCK"(
  p_block_type             IN VARCHAR2 default 'text',
  p_options_json           IN JSON_OBJECT_T default NULL
) RETURN JSON_OBJECT_T;
| 引数 | 説明 | 
|---|---|
| p_block_type | ブロックJSONのタイプを指定します。text,title,code,blockquote,footnote,list,table,rowから指定可能です。 | 
| p_options_json | ブロックJSONのオプションを指定します。 | 
GET_TEXT_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=text)のオプションを生成します。
オプションは以下要素で構成されます。
- text_align(str): テキストの水平位置を指定します。
 - indent_level(int): テキストのインデントレベルを指定します。
 
FUNCTION "GET_TEXT_BLOCK_OPTION"(
  p_text_align               IN VARCHAR2 default 'left',
  p_indent_level             IN NUMBER default 0
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_text_align | テキストの水平位置を指定します。left,right,centerから指定可能です。 | 
| p_indent_level | テキストのインデントレベルを指定します。0~6から指定可能です。 | 
GET_TITLE_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=title)のオプションを生成します。
オプションは以下要素で構成されます。
- heading_level(int): タイトルレベルを指定します。
 
FUNCTION "GET_TITLE_BLOCK_OPTION"(
  p_heading_level            IN NUMBER default 1
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_heading_level | タイトルレベルを指定します。1~6から指定可能です。 | 
GET_CODE_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=code)のオプションを生成します。
オプションは以下要素で構成されます。
- lang(str): コードブロックの言語を指定します。
 
FUNCTION "GET_CODE_BLOCK_OPTION"(
  p_lang                     IN VARCHAR2 default 'none'
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_lang | コードブロックの言語を指定します。 | 
GET_FOOTNOTE_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=footnote)のオプションを生成します。
オプションは以下要素で構成されます。
- footnote_id(str): 脚注のIDを指定します。
 
is_footnote_idが1(True)のテキストJSONの本文を脚注のIDとして指定できます。
FUNCTION "GET_FOOTNOTE_BLOCK_OPTION"(
  p_footnote_id              IN VARCHAR2
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_footnote_id | 脚注のIDを指定します。 | 
GET_LIST_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=list)のオプションを生成します。
オプションは以下要素で構成されます。
- is_ordered_list(int): 番号付きリストであるかを指定します。
 
FUNCTION "GET_LIST_BLOCK_OPTION"(
  p_is_ordered_list          IN NUMBER default C_FALSE
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_is_ordered_list | 番号付きリストであるかを指定します。0(False)の場合は箇条書きリスト、1(True)の場合は番号付きリストになります。 | 
GET_TABLE_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=table)のオプションを生成します。
オプションは以下要素で構成されます。
- is_header_exists(int): ヘッダー付きテーブルであるかを指定します。
 
FUNCTION "GET_TABLE_BLOCK_OPTION"(
  p_is_header_exists         IN NUMBER default C_TRUE
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_is_header_exists | ヘッダー付きテーブルであるかを指定します。0(False)の場合はヘッダーなし、1(True)の場合はヘッダー付きになります。 | 
GET_TEXT_JSON ファンクション
テキストJSONを作成します。 テキストJSONは以下要素で構成されます。
- text(str): テキストを格納します。
 - is_bold(int): テキストが太字であるかを指定します。
 - is_italic(int): テキストが斜体であるかを指定します。
 - is_strike(int): テキストに打消し線を付けるか指定します。
 - is_code_span(int): テキストがコードスパンであるかを指定します。
 - is_footnote_id(int): テキストが脚注のIDであるかを指定します。
 - link_url(str): リンクとなるURLを指定します。
 - tooltip(str): ツールチップを指定します。
 - image(str): 画像のURLを指定します。
 
FUNCTION "GET_TABLE_BLOCK_OPTION"(
  p_is_header_exists         IN NUMBER default C_TRUE
) RETURN JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_text | テキストを指定します。 | 
| p_is_bold | テキストが太字であるかを指定します。0(False)の場合は装飾なし、1(True)の場合は太字になります。 | 
| p_is_italic | テキストが斜体であるかを指定します。0(False)の場合は装飾なし、1(True)の場合は斜体になります。 | 
| p_is_strike | テキストに打消し線を付けるか指定します。0(False)の場合は装飾なし、1(True)の場合は打消し線が付きます。 | 
| p_is_code_span | テキストがコードスパンであるかを指定します。0(False)の場合は装飾なし、1(True)の場合はコードスパンになります。 | 
| p_is_footnote_id | テキストが脚注のIDであるかを指定します。0(False)の場合は装飾なし、1(True)の場合は脚注のIDになります。 | 
| p_link_url | リンクとなるURLを指定します。 | 
| p_tooltip | ツールチップを指定します。 | 
| p_image_url | 画像のURLを指定します。 | 
GET_IMAGE_URL ファンクション
テキストJSONのimageで利用するBLOBの画像URLを生成します。
URLの構成はdata:<image_mimetype>;base64,<base64_data>となります。
FUNCTION "GET_IMAGE_URL"(
  p_image_blob               IN BLOB,
  p_image_extension          IN VARCHAR2
) RETURN CLOB
| 引数 | 説明 | 
|---|---|
| p_image_blob | URL生成対象のBLOBを指定します。 | 
| p_image_extension | 画像のMIMETYPEを指定します。png,jpeg,gif,svg,webpから指定可能です。 | 
ADD_SECTION プロシージャ
ドキュメントJSONにセクションJSONを格納します。
p_section_nameに格納するセクションJSONの名前、p_positionにセクションJSONを格納する順番を指定します。
PROCEDURE "ADD_SECTION"(
  p_docjson                IN OUT NOCOPY JSON_OBJECT_T,
  p_section_json           IN JSON_OBJECT_T,
  p_section_name           IN VARCHAR2,
  p_position               IN NUMBER DEFAULT NULL
)
| 引数 | 説明 | 
|---|---|
| p_docjson | ドキュメントJSONを指定します。 | 
| p_section_json | p_docjsonに指定したドキュメントJSONに格納するセクションJSONを指定します。 | 
| p_section_name | 格納対象のセクションJSONの名前を指定します。半角英数字とアンダースコアのみ指定可能です。 | 
| p_position | セクションJSONを格納する順番を指定します。何も指定しない場合、最後尾に配置されます。 | 
例)ドキュメントJSONにセクションJSONを複数格納します。
DECLARE
  l_docjson      JSON_OBJECT_T;
  l_section_json JSON_OBJECT_T;
BEGIN
  l_docjson := DBXDOC.GET_INIT_DOCJSON;
  l_section_json := DBXDOC.GET_INIT_SECTION;
  DBXDOC.ADD_SECTION(
    p_docjson => l_docjson,
    p_section_json => l_section_json,
    p_section_name => 'section_2'
  );
  DBXDOC.ADD_SECTION(
    p_docjson => l_docjson,
    p_section_json => l_section_json,
    p_section_name => 'section_3'
  );
  -- p_positionを先頭に指定
  DBXDOC.ADD_SECTION(
    p_docjson => l_docjson,
    p_section_json => l_section_json,
    p_section_name => 'section_1',
    p_position => 0
  );
END;
CONCAT2SECTION プロシージャ
セクションJSONにセクションJSONまたはブロックJSONを格納します。
PROCEDURE "CONCAT2SECTION"(
  p_section_json             IN OUT NOCOPY JSON_OBJECT_T,
  p_add_json                 IN     JSON_OBJECT_T
)
| 引数 | 説明 | 
|---|---|
| p_section_json | セクションJSONを指定します。 | 
| p_add_json | p_section_jsonに指定したセクションJSONに結合するセクションJSONまたはブロックJSONを指定します。 | 
例)セクションJSONにブロックJSONとセクションJSONを結合します。
DECLARE
  l_section_json        JSON_OBJECT_T;
  l_add_section_json    JSON_OBJECT_T;
  l_text_json           JSON_OBJECT_T;
  l_title_block_json    JSON_OBJECT_T;
  l_text_block_json     JSON_OBJECT_T;
BEGIN
  l_section_json := DBXDOC.GET_INIT_SECTION;
  -- セクションJSONにブロックJSON(ブロック・タイプ=title)を追加
  l_text_json := DBXDOC.GET_TEXT_JSON(p_text => 'Title');
  l_title_block_json := DBXDOC.GET_TITLE_BLOCK(
    p_text => l_text_json,
    p_heading_level => 1
  );
  DBXDOC.CONCAT2SECTION(
    p_section_json => l_section_json,
    p_add_json => l_title_block_json
  );
  -- 結合用のセクションJSONを定義
  l_add_section_json := DBXDOC.GET_INIT_SECTION;
  -- 結合用のセクションJSONにブロックJSON(ブロック・タイプ=text)を追加
  l_text_json := DBXDOC.GET_TEXT_JSON(p_text => 'This is text.');
  l_text_block_json := DBXDOC.GET_TEXT_BLOCK(
    p_text => l_text_json,
    p_text_align => 'left',
    p_indent_level => 0
  );
  DBXDOC.CONCAT2SECTION(
    p_section_json => l_add_section_json,
    p_add_json => l_text_block_json
  );
  -- セクションJSONを結合(一つのセクション・オブジェクトになります)
  DBXDOC.CONCAT2SECTION(
    p_section_json => l_section_json,
    p_add_json => l_add_section_json
  );
END;
ADD_CHILD_BLOCK プロシージャ
ブロックJSONにブロックJSONを格納します。
PROCEDURE "ADD_CHILD_BLOCK"(
  p_block_json              IN OUT NOCOPY JSON_OBJECT_T,
  p_child_block_json        IN JSON_OBJECT_T
)
| 引数 | 説明 | 
|---|---|
| p_block_json | ブロックJSONを指定します。 | 
| p_child_block_json | p_block_jsonに指定したブロックJSONに格納するブロックJSONを指定します。 | 
例)ブロックJSON(ブロック・タイプ=list)にブロックJSON(ブロック・タイプ=list)を格納します。
DECLARE
  l_list_block_json       JSON_OBJECT_T;
  l_child_list_block_json JSON_OBJECT_T;
BEGIN
  l_list_block_json := DBXDOC.GET_INIT_BLOCK(p_block_type => 'list');
  DBXDOC.ADD_TEXT(
    p_block_json => l_list_block_json,
    p_text => '親のリスト'
  );
  l_child_list_block_json := DBXDOC.GET_INIT_BLOCK(p_block_type => 'list');
  DBXDOC.ADD_TEXT(
    p_block_json => l_child_list_block_json,
    p_text => '子のリスト'
  );
  DBXDOC.ADD_CHILD_BLOCK(
    p_block_json => l_list_block_json,
    p_child_block_json => l_child_list_block_json
  );
END;
ADD_TEXT プロシージャ(テキストJSONのシグネチャ)
ブロックJSONにテキストJSONを格納します。
格納先のブロック・タイプがlist,row,blockquoteの場合、テキストJSONをブロックJSON(ブロック・タイプ=text)に変換してから格納します。
PROCEDURE "ADD_TEXT"(
  p_block_json               IN OUT NOCOPY JSON_OBJECT_T,
  p_text                     IN JSON_OBJECT_T
)
| 引数 | 説明 | 
|---|---|
| p_block_json | ブロックJSONを指定します。 | 
| p_text | p_block_jsonに指定したブロックJSONに格納するテキストJSONを指定します。 | 
ADD_TEXT プロシージャ(文字列のシグネチャ)
ブロックJSONにテキストJSONを格納します。
p_textに指定したテキストは、ブロックJSONへの格納前にテキストJSONに変換されます。
格納先のブロック・タイプがlist,row,blockquoteの場合、テキストJSONをブロックJSON(ブロック・タイプ=text)に変換してから格納します。
PROCEDURE "ADD_TEXT"(
  p_block_json               IN OUT NOCOPY JSON_OBJECT_T,
  p_text                     IN VARCHAR2
)
| 引数 | 説明 | 
|---|---|
| p_block_json | ブロックJSONを指定します。 | 
| p_text | p_block_jsonに指定したブロックJSONに格納するテキストを指定します。 | 
APPEND_ROW プロシージャ
ブロックJSON(ブロック・タイプ=table)にブロックJSON(ブロック・タイプ=row)を格納します。
PROCEDURE "APPEND_ROW"(
  p_table_block_json         IN OUT NOCOPY JSON_OBJECT_T,
  p_row_block_json           IN JSON_OBJECT_T
)
| 引数 | 説明 | 
|---|---|
| p_table_block_json | ブロックJSON(ブロック・タイプ=table)を指定します。 | 
| p_row_block_json | p_block_jsonに指定したブロックJSONに格納するブロックJSON(ブロック・タイプ=row)を指定します。 | 
例)ブロックJSON(ブロック・タイプ=table)を作成し、行データを1行追加します。
DECLARE
  l_table_block_json  JSON_OBJECT_T;
  l_row_block_json    JSON_OBJECT_T;
BEGIN
  -- テーブルブロックの作成
  l_table_block_json := GET_INIT_BLOCK('table');
  -- 1行目行データの作成
  l_row_block_json := DBXDOC.GET_INIT_BLOCK('row');
  DBXDOC.ADD_TEXT(
    p_block_json => l_row_block_json,
    p_text => 'row1-col1'
  );
  DBXDOC.ADD_TEXT(
    p_block_json => l_row_block_json,
    p_text => 'row1-col2'
  );
  -- 行データの追加
  DBXDOC.APPEND_ROW(
    p_table_block_json => l_table_block_json,
    p_row_block_json => l_row_block_json
  );
  -- 2行目行データの作成
  l_row_block_json := DBXDOC.GET_INIT_BLOCK('row');
  DBXDOC.ADD_TEXT(
    p_block_json => l_row_block_json,
    p_text => 'row2-col1'
  );
  DBXDOC.ADD_TEXT(
    p_block_json => l_row_block_json,
    p_text => 'row2-col2'
  );
  -- 行データの追加
  DBXDOC.APPEND_ROW(
    p_table_block_json => l_table_block_json,
    p_row_block_json => l_row_block_json
  );
END;
GET_TITLE_BLOCK ファンクション(テキストJSONのシグネチャ)
文字付のブロックJSON(ブロック・タイプ=title)を直接作成します。
p_textにテキストJSONを指定します。
FUNCTION "GET_TITLE_BLOCK"(
  p_text                     IN JSON_OBJECT_T,
  p_heading_level            IN NUMBER
) return JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_text | 見出しのテキストJSONを指定します。 | 
| p_heading_level | タイトルレベルを指定します。1~6から指定可能です。 | 
GET_TITLE_BLOCK ファンクション(文字列のシグネチャ)
文字付のブロックJSON(ブロック・タイプ=title)を直接作成します。
p_textに文字列を指定します。
FUNCTION "GET_TITLE_BLOCK"(
  p_text                     IN VARCHAR2,
  p_heading_level            IN NUMBER
) return JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_text | 見出しのテキストを指定します。 | 
| p_heading_level | タイトルレベルを指定します。1~6から指定可能です。 | 
GET_TEXT_BLOCK ファンクション(テキストJSONのシグネチャ)
文字付のブロックJSON(ブロック・タイプ=text)を直接作成します。
p_textにテキストJSONを指定します。
FUNCTION "GET_TEXT_BLOCK"(
  p_text                     IN JSON_OBJECT_T,
  p_text_align               IN VARCHAR2 default 'left',
  p_indent_level             IN NUMBER default 0
) return JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_text | 見出しのテキストJSONを指定します。 | 
| p_text_align | テキストの水平位置を指定します。left,right,centerから指定可能です。 | 
| p_indent_level | テキストのインデントレベルを指定します。0~6から指定可能です。 | 
GET_TEXT_BLOCK ファンクション(文字列のシグネチャ)
文字付のブロックJSON(ブロック・タイプ=text)を直接作成します。
p_textで指定したテキストJSONとp_text_align,p_indent_levelで指定したオプション値を格納します。
p_textに指定したテキストは、ブロックJSONへの格納前にテキストJSONに変換されます。
FUNCTION "GET_TEXT_BLOCK"(
  p_text                     IN VARCHAR2,
  p_text_align               IN VARCHAR2 default 'left',
  p_indent_level             IN NUMBER default 0
) return JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_text | 見出しのテキストを指定します。 | 
| p_text_align | テキストの水平位置を指定します。left,right,centerから指定可能です。 | 
| p_indent_level | テキストのインデントレベルを指定します。0~6から指定可能です。 | 
GET_TABLE_BLOCK ファンクション(SQLデータのシグネチャ)
SQLの結果データからブロックJSON(ブロック・タイプ=table)を作成します。
p_sqldata_jsonにDBXAP_DATALOAD.SQL2JSONで取得したSQL結果JSONを指定します。
FUNCTION "GET_TABLE_BLOCK"(
  p_sqldata_json             IN JSON_OBJECT_T,
  p_column_list              IN JSON_ARRAY_T default NULL,
  p_header_json              IN JSON_OBJECT_T default NULL
) return JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_sqldata_json | SQL結果JSONを指定します。 | 
| p_column_list | 列名のリストを指定します。指定した場合、指定したカラムのみをデータの対象としてテーブルブロックを生成します。 | 
| p_header_json | テーブルの列名を指定したヘッダー名で入れ替えます。指定しない列は列名がそのままヘッダーとして利用されます。 | 
GET_TABLE_BLOCK ファンクション(SQL文のシグネチャ)
SQLの結果データからブロックJSON(ブロック・タイプ=table)を作成します。
p_sqldata_stmtに結果データを取得するSQL文を指定します。
FUNCTION "GET_TABLE_BLOCK"(
  p_sql_stmt                 IN VARCHAR2,
  p_sql_variable_json        IN JSON_OBJECT_T default NULL,
  p_column_list              IN JSON_ARRAY_T default NULL,
  p_header_json              IN JSON_OBJECT_T default NULL
) return JSON_OBJECT_T
| 引数 | 説明 | 
|---|---|
| p_sql_stmt | SQL文を指定します。 | 
| p_sql_variable_json | SQLバインド変数データを指定します。指定するデータはDBXAP_DATALOAD.ADD_BIND_VARIABLE_DATAで生成します。 | 
| p_column_list | 列名のリストを指定します。指定した場合、指定したカラムのみをデータの対象としてテーブルブロックを生成します。 | 
| p_header_json | テーブルの列名を指定したヘッダー名で入れ替えます。指定しない列は列名がそのままヘッダーとして利用されます。 | 
例)ブロックJSON(ブロック・タイプ=table)を作成します。
DECLARE
  l_sql_stmt          VARCHAR2(32767);
  l_sql_variable_json JSON_OBJECT_T;
  l_sqldata_json      JSON_OBJECT_T;
  l_header_json       JSON_OBJECT_T;
  l_column_list       JSON_ARRAY_T;
  l_table_block_json  JSON_OBJECT_T;
BEGIN
  l_sql_stmt := q'[
      select
          'COL1' as COL1,
          #COL2# as COL2
      from dual
  ]';
  -- SQLバインド変数の指定
  l_sql_variable_json := new JSON_OBJECT_T();
  DBXAP_DATALOAD.ADD_BIND_VARIABLE_DATA(
      p_sql_variable_json => l_sql_variable_json,
      p_variable_name => 'COL2',
      p_data => 'COL2',
      p_value_type => 'string'
  );
  -- SQL結果JSONの取得
  l_sqldata_json :=
      JSON_OBJECT_T.parse(
        DBXAP_DATALOAD.SQL2JSON(
          p_sql_stmt => l_sql_stmt,
          p_sql_variable_json => l_sql_variable_json
        )
      );
  -- カラムリストの作成
  l_column_list := new JSON_ARRAY_T;
  l_column_list.append('col1');
  l_column_list.append('col2');
  l_column_list.append('col3');
  -- ヘッダーリストの作成
  l_header_json := new JSON_OBJECT_T();
  l_header_json.put('col1', 'カラム1');
  l_header_json.put('col2', 'カラム2');
  l_table_block_json := DBXDOC.GET_TABLE_BLOCK(
      p_sql_stmt => l_sql_stmt,
      p_sql_variable_json => l_sql_variable_json,
      p_column_list => l_column_list,
      p_header_json => l_header_json
  );
END;
ADD_CHILD_LIST プロシージャ
ブロックJSON(ブロック・タイプ=list)にブロックJSON(ブロック・タイプ=list)を格納します。
PROCEDURE "ADD_CHILD_LIST"(
  p_list_block_json          IN OUT NOCOPY JSON_OBJECT_T,
  p_child_list_block_json    IN JSON_OBJECT_T
)
| 引数 | 説明 | 
|---|---|
| p_list_block_json | ブロックJSON(ブロック・タイプ=list)を指定します。 | 
| p_child_list_block_json | p_list_block_jsonに指定したブロックJSONに格納するブロックJSON(ブロック・タイプ=list)を指定します。 | 
ADD_LIST_ITEM プロシージャ
ブロックJSON(ブロック・タイプ=list)にブロックJSON(ブロック・タイプ=list,text)を格納します。
PROCEDURE "ADD_CHILD_LIST"(
  p_list_block_json          IN OUT NOCOPY JSON_OBJECT_T,
  p_child_list_block_json    IN JSON_OBJECT_T
)
| 引数 | 説明 | 
|---|---|
| p_list_block_json | ブロックJSON(ブロック・タイプ=list)を指定します。 | 
| p_child_list_block_json | p_list_block_jsonに指定したブロックJSONに格納するブロックJSON(ブロック・タイプ=list,text)を指定します。textの場合リストの項目となり、listの場合子のリストとなります。 | 
CHECK_DOCJSON プロシージャ
ドキュメントJSONのフォーマットが正しいかをチェックします。
ドキュメントJSONに追加が可能なセクションJSONをチェックしたい場合、p_add_jsonに指定し、フォーマットが正しいかをチェックします。
PROCEDURE "CHECK_DOCJSON"(
  p_docjson                 IN     JSON_OBJECT_T,
  p_add_json                IN     JSON_OBJECT_T default NULL,
  p_is_confirm_children     IN     NUMBER default 1
)
| 引数 | 説明 | 
|---|---|
| p_docjson | チェック対象のドキュメントJSONを指定します。 | 
| p_add_json | ドキュメントJSONに追加する想定のセクションJSONを指定します。実際に追加はされません。 | 
| p_is_confirm_children | 追加対象のセクションJSONの子要素(ブロックJSON)および、ドキュメントJSON内に追加済みの子要素(セクションJSON)をチェックするか指定します。0(False)の場合はチェックなし、1(True)の場合はチェックします。 | 
CHECK_BLOCK_JSON プロシージャ
ブロックJSONのフォーマットが正しいかをチェックします。
ブロックJSONに追加が可能なJSONをチェックしたい場合、p_add_jsonに指定し、フォーマットが正しいかをチェックします。
PROCEDURE "CHECK_BLOCK_JSON"(
  p_block_json              IN     JSON_OBJECT_T,
  p_add_json                IN     JSON_OBJECT_T default NULL,
  p_is_confirm_children     IN     NUMBER default 0
)
| 引数 | 説明 | 
|---|---|
| p_block_json | チェック対象のブロックJSONを指定します。 | 
| p_add_json | p_block_jsonに指定したブロックJSONに追加する想定のブロックJSONまたはテキストJSONを指定します。実際に追加はされません。 | 
| p_is_confirm_children | 追加対象のブロックJSONの子要素(ブロックJSON)および、追加元のドキュメントJSON内に追加済みの子要素(ブロックJSON)をチェックするか指定します。0(False)の場合はチェックなし、1(True)の場合はチェックします。 |