11.9 PARSEファンクション
LINE_NUMBER COL001 COL002 COL003 COL004 ... COL300
すべての値はVARCHAR2
形式で返されます。返される表の行は、最大で300個の列を持つことができます。表の列の最大長は4000バイトです。行長の制限はありません。
このファンクションを呼び出すと、ファイルの解析がすぐに実行されます。コレクションまたは一時表にはデータは書き込まれません。
P_FILE_PROFILE
パラメータを渡さない場合、このファンクションは解析中に列情報を使用してファイル・プロファイルを計算します。P_DETECT_DATA_TYPES
を'Y'
(デフォルト)として渡した場合、このファンクションは解析時に列のデータ型も検出します。計算されたファイル・プロファイルは、このファンクションの終了後にGET_FILE_PROFILE
を使用して取得できます。
- PARSEの呼出し - この表ファンクションを使用して、ファイルを解析し、データ・プレビューを表示するための行と列を取得します。
GET_FILE_PROFILE
の呼出し - ファイル・プロファイル情報をJSON形式で取得します。- データの処理 - カスタム処理を実行するためのデータ・プロファイルに基づいてSQL問合せを生成します。
注意:
- JSON解析は、データベース・バージョン11.2および12.1.0.1でサポートされます。この場合、このファンクションは
APEX_JSON
ファンクションおよびXMLTABLE
ファンクションを使用します。パフォーマンス上の理由により、データベースを少なくとも12.2にアップグレードすることをお薦めします。それらのバージョンでは、JSON解析が大幅に速く処理されます。 - XLSX解析は、
APEX_ZIP
を使用してXLSXアーカイブから個々のXMLファイルを抽出することによって実行されます。実際のXLSX解析は、XMLTABLE SQL
ファンクションを使用して実行されます。
構文
function parse(
p_content in blob,
p_file_name in varchar2 default null,
p_file_type in t_file_type default null,
p_file_profile in clob default null,
p_detect_data_types in varchar2 default 'Y',
p_decimal_char in varchar2 default null,
p_xlsx_sheet_name in varchar2 default null,
p_row_selector in varchar2 default null,
p_csv_row_delimiter in varchar2 default LF,
p_csv_col_delimiter in varchar2 default null,
p_csv_enclosed in varchar2 default '"',
p_skip_rows in pls_integer default 0,
p_add_headers_row in varchar2 default 'N',
p_file_charset in varchar2 default 'AL32UTF8',
p_max_rows in number default null,
p_return_rows in number default null,
p_store_profile_to_collection in varchar2 default null ) return wwv_flow_t_parser_table pipelined;
パラメータ
表11-6 PARSEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
BLOBとして解析されるファイル・コンテンツ |
|
ファイル・タイプの導出にのみ使用されるファイルの名前。 |
|
解析するファイルのタイプ。ファイル・タイプを明示的に渡す場合に使用します。 |
|
解析に使用されるファイル・プロファイル。ファイル・プロファイルは、以前の |
|
解析中にデータ型( |
|
|
|
XLSXワークブックの場合。解析するワークシートの名前。省略した場合、このファンクションは最初に検出されたワークシートを使用します。 |
|
JSONおよびXMLファイルの場合。JSONまたはXMLファイル内の行の配列/リストへのポインタ。省略した場合、このファンクションは次のように処理します。
|
|
CSV解析のデフォルトの行デリミタをオーバーライドします。 |
|
特定のCSV列デリミタを使用します。省略した場合、ファンクションは最初の行の内容に基づいて列デリミタを検出します。 |
|
CSV解析のデフォルトの囲み文字をオーバーライドします。 |
|
解析時に最初のN行をスキップします。 |
|
XML、JSONの場合。列ヘッダー(タグ、属性名)を最初の行として表示します。 |
|
ファイル・エンコーディング( |
|
|
|
返される行数。これはパーサーが返す予定の行数よりも多くの行が解析されそうな(データ型検出のため)場合に役立ちます。指定された行数が出力されると、このファンクションは、 |
|
解析時に計算されたファイル・プロファイルをコレクションに格納します。コレクションが存在する場合は、クリアされます。計算されたプロファイルにのみ使用できます。 |
戻り値
APEX_T_PARSER_ROW
型の行を返します。
LINE_NUMBER COL001 COL002 COL003 COL004 ... COL300
例
select line_number, col001,col002,col003,col004,col005,col006,col007,col008
from table(
wwv_flow_data_parser.parse(
p_content => {BLOB containing XLSX spreadsheet},
p_file_name => 'test.xlsx',
p_xlsx_sheet_name => 'sheet1.xml') ) ;
LINE_NUMBER COL001 COL002 COL003 COL004 COL005 COL006 COL007 COL008
----------- -------- ------------ ------------ -------- --------------- -------- ------------ -------------
1 0 First Name Last Name Gender Country Age Date Id
2 1 Dulce Abril Female United States 32 15/10/2017 1562
3 2 Mara Hashimoto Female Great Britain 25 16/08/2016 1582
4 3 Philip Gent Male France 36 21/05/2015 2587
5 4 Kathleen Hanner Female United States 25 15/10/2017 3549
6 5 Nereida Magwood Female United States 58 16/08/2016 2468
7 6 Gaston Brumm Male United States 24 21/05/2015 2554
8 7 Etta Hurn Female Great Britain 56 15/10/2017 3598
9 8 Earlean Melgar Female United States 27 16/08/2016 2456
10 9 Vincenza Weiland Female United States 40 21/05/2015 6548
: : : : : : : : :
select line_number, col001,col002,col003,col004,col005,col006,col007,col008
from table(
wwv_flow_data_parser.parse(
p_content => {BLOB containing JSON file},
p_file_name => 'test.json') ) ;
LINE_NUMBER COL001 COL002 COL003 COL004 COL005
----------- --------- ---------------------------------------------- --------------- --------------
1 Feature 1.5 41km E of Cape Yakataga, Alaska 1536513727239 1536514117117
2 Feature 0.21 11km ENE of Aguanga, CA 1536513299520 1536513521231
3 Feature 1.84 5km SSW of Pahala, Hawaii 1536513262940 1536513459610
4 Feature 2.55 9km W of Volcano, Hawaii 1536513100890 1536513446680
5 Feature 1.3 62km ESE of Cape Yakataga, Alaska 1536512917361 1536513322236
6 Feature 1.79 7km SW of Tiptonville, Tennessee 1536512379690 1536512668010
7 Feature 1.9 126km NNW of Arctic Village, Alaska 1536512346186 1536512846567
8 Feature 1.4 105km NW of Arctic Village, Alaska 1536512140162 1536512846334
親トピック: APEX_DATA_PARSER