主要テーブル・SQL チートシート
テーブル名の読み方
Section titled “テーブル名の読み方”| 接頭辞 | 領域 | 表の例 |
|---|---|---|
| GL_ | 一般会計 | GL_JE_LINES、GL_LEDGERS |
| AP_ | 買掛管理 | AP_INVOICES_ALL、AP_CHECKS_ALL |
| AR_ / RA_ | 売掛管理・AutoInvoice・取引 | AR_PAYMENT_SCHEDULES_ALL、RA_CUSTOMER_TRX_ALL |
| POZ_ | 仕入先モデル | POZ_SUPPLIERS、POZ_SUPPLIER_SITES_ALL_M |
| PO_ / POR_ | 購買/購買依頼 | PO_HEADERS_ALL、POR_REQUISITION_HEADERS_ALL |
| RCV_ | 受入 | RCV_TRANSACTIONS |
| HZ_ | 取引先(パーティ・顧客) | HZ_PARTIES、HZ_CUST_ACCOUNTS |
| EGP_ / INV_ | 品目/在庫 | EGP_SYSTEM_ITEMS_B、INV_ONHAND_QUANTITIES_DETAIL |
| DOO_ | 受注管理 | DOO_HEADERS_ALL、DOO_FULFILL_LINES_ALL |
| XLA_ | 補助元帳会計(SLA) | XLA_EVENTS、XLA_AE_LINES |
| XLE_ / ZX_ / FA_ | 法的エンティティ/税/固定資産 | XLE_ENTITY_PROFILES、ZX_WITHHOLDING_LINES、FA_MASS_ADDITIONS |
| IBY_ / FND_ | 支払/共通基盤 | IBY_PAYMENT_METHODS_B、FND_CURRENCIES_B |
| 接尾辞 | 意味 | 使い方 |
|---|---|---|
_ALL |
BU 別のデータを 1 表に格納 | BU の列(ORG_ID など)で必ず絞る |
_B |
言語に依存しない基本表 | ID・コード・フラグ |
_TL |
翻訳表(言語ごとに 1 行) | 言語(LANGUAGE)で 1 言語に絞って結合 |
_VL |
_B と _TL を結合したビュー |
名称を取るときの第一候補 |
_V |
ビュー | 元の SQL をドキュメントで確認 |
_F / _M |
日付有効(履歴を持つ)表 | 基準日の条件が要るかを確認 |
_INTERFACE / _INT |
インターフェース表 | 取込エラーの調査 |
_GT |
グローバル一時表 | レポートには使えない(常に 0 件) |
組織を表す列
Section titled “組織を表す列”| 列 | 指す組織 | 例 |
|---|---|---|
ORG_ID |
BU | AP_INVOICES_ALL、AP_CHECKS_ALL |
SET_OF_BOOKS_ID / LEDGER_ID |
元帳 | AP_INVOICES_ALL / GL_JE_LINES |
LEGAL_ENTITY_ID |
法的エンティティ | AP_INVOICES_ALL |
PRC_BU_ID |
調達 BU | PO_HEADERS_ALL、POZ_SUPPLIER_SITES_ALL_M |
REQ_BU_ID / BILLTO_BU_ID |
購買依頼 BU/請求先 BU | PO_HEADERS_ALL |
SHIP_TO_ORGANIZATION_ID など |
在庫組織 | PO_LINE_LOCATIONS_ALL |
購買の表は ORG_ID ではなく PRC_BU_ID が中心です(PO_LINES_ALL に ORG_ID 列はありません)。SET_OF_BOOKS_ID は、Fusion では元帳 ID です。
主要テーブルの結合キー
Section titled “主要テーブルの結合キー”AP(請求書から支払まで)
Section titled “AP(請求書から支払まで)”| 結合(親 → 子) | 結合キー | 確認 | 注意 |
|---|---|---|---|
| AP_INVOICES_ALL → AP_INVOICE_LINES_ALL | INVOICE_ID |
25D | 1 請求書に複数明細 |
| AP_INVOICE_LINES_ALL → AP_INVOICE_DISTRIBUTIONS_ALL | INVOICE_ID+INVOICE_LINE_NUMBER(明細の LINE_NUMBER) |
25D | 1 明細に複数配分。明細金額が配分の行数分だけ繰り返される |
| AP_INVOICES_ALL → AP_PAYMENT_SCHEDULES_ALL | INVOICE_ID(+PAYMENT_NUM) |
25D | 1 請求書に複数の支払予定。集計してから結合する |
| AP_INVOICES_ALL → AP_INVOICE_PAYMENTS_ALL → AP_CHECKS_ALL | INVOICE_ID、CHECK_ID |
25D/26A | 支払の取消でマイナス行が追加される |
| AP_INVOICES_ALL → 仕入先 | VENDOR_ID → POZ_SUPPLIERS → PARTY_ID → HZ_PARTIES |
25D/最新 | 名称は HZ_PARTIES.PARTY_NAME(POZ_SUPPLIERS にはない) |
| AP 請求書明細 → 発注・受入 | PO_LINE_LOCATION_ID、RCV_TRANSACTION_ID |
25D/26A/名称 | 照合先。発注は PO_LINE_LOCATIONS_ALL の LINE_LOCATION_ID |
| AP 配分 → 発注配分 | PO_DISTRIBUTION_ID |
25D/26A | PO_DISTRIBUTIONS_ALL の同名の列 |
| AP 配分 → 勘定組合せ | DIST_CODE_COMBINATION_ID → CODE_COMBINATION_ID |
25D/名称 | セグメントは GL_CODE_COMBINATIONS |
| AP 配分 → 会計イベント | ACCOUNTING_EVENT_ID → XLA_EVENTS の EVENT_ID |
25D/25D | 配分に索引 AP_INVOICE_DISTRIBUTIONS_N18 |
GL と SLA
Section titled “GL と SLA”| 結合 | 結合キー | 確認 | 注意 |
|---|---|---|---|
| GL_JE_LINES → GL_JE_HEADERS | JE_HEADER_ID |
26A/名称 | ヘッダーはソース・カテゴリ・期間・ステータス |
| GL_JE_HEADERS → GL_JE_BATCHES | JE_BATCH_ID |
25D/名称 | GL_IMPORT_REFERENCES も JE_BATCH_ID で GL_JE_BATCHES を参照する(外部キー) |
| GL_JE_LINES → GL_CODE_COMBINATIONS | CODE_COMBINATION_ID |
26A/名称 | セグメントは SEGMENT1〜SEGMENTn |
| GL_JE_LINES → GL_LEDGERS | LEDGER_ID |
26A/名称 | 元帳名・通貨 |
| GL_BALANCES | LEDGER_ID、CODE_COMBINATION_ID、PERIOD_NAME、CURRENCY_CODE |
要確認 | 通貨・換算の行に注意 |
| XLA_TRANSACTION_ENTITIES → XLA_EVENTS | ENTITY_ID(+APPLICATION_ID) |
26B/25D | 取引側は APPLICATION_ID+ENTITY_CODE+SOURCE_ID_INT_1。値は環境で確認する |
| XLA_EVENTS → XLA_AE_HEADERS | APPLICATION_ID+EVENT_ID |
25D | APPLICATION_ID を必ず入れる。XLA_EVENTS に LEDGER_ID 列はない(TRANSACTION_LEDGER_ID) |
| XLA_AE_HEADERS → XLA_AE_LINES | APPLICATION_ID+AE_HEADER_ID |
25D | 仕訳ヘッダーは元帳ごと |
| XLA_AE_LINES → GL_IMPORT_REFERENCES → GL_JE_LINES | GL_SL_LINK_ID+GL_SL_LINK_TABLE → JE_HEADER_ID+JE_LINE_NUM |
25D/25D/26A | 補助元帳仕訳明細 : GL 仕訳明細 = 多 : 1(集約)。GL_IMPORT_REFERENCES は Import Journal References が Yes のソースだけ |
| XLA_DISTRIBUTION_LINKS → XLA_AE_LINES | AE_HEADER_ID+AE_LINE_NUM |
26A/25D | 配分側は SOURCE_DISTRIBUTION_TYPE+SOURCE_DISTRIBUTION_ID_NUM_1(値は環境で確認) |
追跡の全体は SLA の仕組みと追跡 SQL、手を動かす練習は SQL 演習 にあります。
| 結合(親 → 子) | 結合キー | 確認 | 注意 |
|---|---|---|---|
| PO_HEADERS_ALL → PO_LINES_ALL | PO_HEADER_ID |
26A | 番号 SEGMENT1 は一意ではない。PRC_BU_ID+SEGMENT1+TYPE_LOOKUP_CODE か PO_HEADER_ID で特定する |
| PO_LINES_ALL → PO_LINE_LOCATIONS_ALL | PO_LINE_ID |
26A | 納入予定。MATCH_OPTION(発注照合か受入照合か) |
| PO_LINE_LOCATIONS_ALL → PO_DISTRIBUTIONS_ALL | LINE_LOCATION_ID |
26A | 配分は CODE_COMBINATION_ID を持つ |
| PO_LINE_LOCATIONS_ALL → RCV_SHIPMENT_LINES | PO_LINE_LOCATION_ID |
要確認 | 受入明細 |
| 購買依頼 | POR_REQUISITION_HEADERS_ALL / POR_REQUISITION_LINES_ALL | 名称 | 結合キーは Tables and Views で確認する |
| 結合 | 結合キー | 確認 | 注意 |
|---|---|---|---|
| RA_CUSTOMER_TRX_ALL → RA_CUSTOMER_TRX_LINES_ALL | CUSTOMER_TRX_ID |
要確認 | 取引の明細 |
| RA_CUSTOMER_TRX_LINES_ALL → RA_CUST_TRX_LINE_GL_DIST_ALL | CUSTOMER_TRX_ID+CUSTOMER_TRX_LINE_ID |
要確認 | 取引の配分(勘定) |
| RA_CUSTOMER_TRX_ALL → AR_PAYMENT_SCHEDULES_ALL | CUSTOMER_TRX_ID |
要確認 | 債権の残額・期日。残高は配分ではなくここで見る |
| AR_PAYMENT_SCHEDULES_ALL → HZ_CUST_ACCOUNTS | CUSTOMER_ID → CUST_ACCOUNT_ID |
要確認 | BIP の SQL 実践の例に合わせた結合 |
| HZ_CUST_ACCOUNTS → HZ_PARTIES | PARTY_ID |
要確認/最新 | 顧客名は HZ_PARTIES.PARTY_NAME |
| 結合 | 結合キー | 確認 | 注意 |
|---|---|---|---|
| DOO_HEADERS_ALL → DOO_LINES_ALL → DOO_FULFILL_LINES_ALL | HEADER_ID、LINE_ID |
要確認 | 出荷・請求の単位はフルフィルメント明細。改訂版の判定を確認する |
| EGP_SYSTEM_ITEMS_B → EGP_SYSTEM_ITEMS_TL | 品目 ID+組織 ID+言語 | 名称/要確認 | 品目は在庫組織ごとに行がある。組織の条件を必ず付ける |
SQL の型
Section titled “SQL の型”BU 名と元帳名を付ける
Section titled “BU 名と元帳名を付ける”業務の表には ID しかありません。名称は ID から結合して取ります。
SELECT bu.bu_name, gl.name AS ledger_name, aia.invoice_numFROM ap_invoices_all aia JOIN fun_all_business_units_v bu ON bu.bu_id = aia.org_id JOIN gl_ledgers gl ON gl.ledger_id = aia.set_of_books_idWHERE aia.org_id = :P_BU_IDFUN_ALL_BUSINESS_UNITS_V は、公式の Tables and Views(26C)でビューとして載っており、BU の ID が BU_ID、名称が BU_NAME、主元帳の ID が PRIMARY_LEDGER_ID、法的エンティティが LEGAL_ENTITY_ID です。公式ページのビュー定義は、分類が FUN_BUSINESS_UNIT で、現在の日付に有効な組織だけを返す条件になっています。過去に終了した BU は出ないため、履歴を扱う帳票では注意してください。
BIP のパラメータの値リストは、名称を表示して ID を値にします。
SELECT bu.bu_name AS label, bu.bu_id AS valueFROM fun_all_business_units_v buORDER BY bu.bu_name仕入先名・顧客名を付ける
Section titled “仕入先名・顧客名を付ける”SELECT ps.segment1 AS supplier_number, hp.party_name AS supplier_nameFROM ap_invoices_all aia JOIN poz_suppliers ps ON ps.vendor_id = aia.vendor_id JOIN hz_parties hp ON hp.party_id = ps.party_idPOZ_SUPPLIERS_V(25D で確認)を使うと、VENDOR_NAME(仕入先名)と VENDOR_NAME_ALT(音声読み名)をまとめて取れます。支払の表 AP_CHECKS_ALL の VENDOR_NAME は、支払時点の名称のコピーです。
SELECT hca.account_number, hp.party_name AS customer_nameFROM ar_payment_schedules_all aps JOIN hz_cust_accounts hca ON hca.cust_account_id = aps.customer_id JOIN hz_parties hp ON hp.party_id = hca.party_id名称は、仕入先も顧客も HZ_PARTIES にあります。
COA セグメントを取り出す
Section titled “COA セグメントを取り出す”SELECT gcc.segment1 AS company, gcc.segment2 AS department, gcc.segment3 AS account, gjl.accounted_dr, gjl.accounted_crFROM gl_je_lines gjl JOIN gl_code_combinations gcc ON gcc.code_combination_id = gjl.code_combination_idWHERE gjl.ledger_id = :P_LEDGER_IDAND gjl.period_name = :P_PERIOD_NAMESEGMENT1が会社とは限りません。COA の定義(Manage Chart of Accounts Structures)で確認し、SQL のコメントに残します- 複数の COA が混在するときは、
CHART_OF_ACCOUNTS_IDで絞ってから解釈します(列は要確認) - 勘定の範囲指定は文字列比較です。桁数がそろっている前提で書きます
- セグメント値の名称は値セットから取ります。構造はリリースで確認するか、OTBI の分析をデータセットにすることも検討します
勘定組合せ ID を持つ主な列は次のとおりです。
| 表 | 列 | 確認 |
|---|---|---|
| AP_INVOICE_DISTRIBUTIONS_ALL | DIST_CODE_COMBINATION_ID |
25D |
| PO_DISTRIBUTIONS_ALL | CODE_COMBINATION_ID |
26A |
| GL_JE_LINES | CODE_COMBINATION_ID |
26A |
| XLA_AE_LINES | CODE_COMBINATION_ID |
25D |
| GL_BALANCES | CODE_COMBINATION_ID |
要確認 |
| RA_CUST_TRX_LINE_GL_DIST_ALL | CODE_COMBINATION_ID |
要確認 |
会計期間を扱う
Section titled “会計期間を扱う”GL の期間は、期間名(PERIOD_NAME、例:Apr-26)で持つのが基本です。仕訳明細は、元帳 ID と期間名で絞れます(上の SQL)。期間名は文字列として並べても時系列になりません。
SELECT gps.period_name AS label, gps.period_name AS valueFROM gl_period_statuses gpsWHERE gps.application_id = 101 -- GLAND gps.ledger_id = :P_LEDGER_IDAND NVL(gps.adjustment_period_flag, 'N') = 'N'ORDER BY gps.start_date DESC- GL の期間ステータスは
APPLICATION_ID = 101です。期間の状態は元帳とアプリケーションごとに持つため、補助元帳の期間は、そのアプリケーションの ID(環境で確認)で調べます - 期間の範囲(期首から当月まで)は、期間名の
BETWEENではなく、GL_PERIODSなどの開始日・終了日で決めます(日付の列名は要確認) - 期間のオープン・クローズの状態は、元帳とアプリケーションごとに違います(期間締め)
多言語表(_B・_TL・_VL)
Section titled “多言語表(_B・_TL・_VL)”SELECT b.<コード列>, t.<名称列>FROM <名前>_B b JOIN <名前>_TL t ON t.<ID列> = b.<ID列> AND t.language = 'JA' -- 1 言語に絞らないと、行が言語の数だけ増える- 名称がほしいときは、まず
_VLビューを探します - 言語コードは、日本語が
JA、英語(米国)がUSです - 常に同じ言語で出す帳票は、言語コードを明示します。
:xdo_user_report_oracle_langは、スケジュール実行では設定されません
日付とパラメータ
Section titled “日付とパラメータ”WHERE aia.creation_date >= :P_FROM_DATEAND aia.creation_date < :P_TO_DATE + 1 -- 列は加工しない(TRUNC・TO_CHAR を付けない)AND (:P_SOURCE IS NULL OR gjh.je_source = :P_SOURCE) -- 省略(NULL)なら全件AND gjh.je_source IN (:P_SOURCE) -- 複数選択- ESS ジョブ(BIPJobType)から実行する帳票では、日付パラメータの書式を
yyyy-MM-ddにそろえます - 「省略可」の形は実行計画が不利になることがあります。全件実行が多い帳票では、必須にするか使い分けます
日付有効の表(_F・_M)
Section titled “日付有効の表(_F・_M)”SELECT pssam.vendor_site_id, pssam.vendor_site_code, pssam.prc_bu_idFROM poz_supplier_sites_all_m pssamWHERE pssam.vendor_id = :P_VENDOR_IDAND :P_AS_OF_DATE BETWEEN pssam.effective_start_date AND pssam.effective_end_date-- 主キーは VENDOR_SITE_ID のみ。実データで複数行あるかを確認してから条件を決める1 対多の結合で金額を重複させない
Section titled “1 対多の結合で金額を重複させない”SELECT aia.invoice_num, aia.invoice_amount, NVL(sch.amount_remaining, 0) AS amount_remainingFROM ap_invoices_all aia LEFT JOIN (SELECT apsa.invoice_id, SUM(apsa.amount_remaining) AS amount_remaining FROM ap_payment_schedules_all apsa GROUP BY apsa.invoice_id) sch ON sch.invoice_id = aia.invoice_idWHERE aia.org_id = :P_BU_IDSELECT COUNT(*) AS row_count, COUNT(DISTINCT aila.line_number) AS line_countFROM ap_invoice_lines_all aila JOIN ap_invoice_distributions_all aida ON aida.invoice_id = aila.invoice_id AND aida.invoice_line_number = aila.line_numberWHERE aila.invoice_id = :P_INVOICE_ID-- row_count が line_count より大きければ、配分の分だけ明細の行が増えている。明細金額をこの結果で合計しない金額は、どの階層のものかを決めてから合計します。請求書の総額はヘッダー、勘定別の金額は配分、会計後の金額は SLA の仕訳明細です。
ステータス・フラグの値
Section titled “ステータス・フラグの値”値は代表例です。全量は、環境で SELECT DISTINCT して確認します。XLA_ の 3 つの列は、列の存在と型を Tables and Views(25D)で確認しましたが、値の一覧は公式の列定義になく、下の値は一般に使われる例です。
| 表・列 | 値 | 意味 | 確認 |
|---|---|---|---|
AP_INVOICE_DISTRIBUTIONS_ALL.POSTED_FLAG |
Y/N | 会計済み/未会計 | 25D |
AP_PAYMENT_SCHEDULES_ALL.PAYMENT_STATUS_FLAG |
Y/N/P | 全額支払/未払/一部支払 | 25D |
GL_JE_LINES.STATUS |
U/P | 未転記/転記済み | 26A |
XLA_EVENTS.PROCESS_STATUS_CODE(VARCHAR2(1)) |
P/U/D/E | 処理済/未処理/ドラフト/エラー | 列は 25D/値は要確認 |
XLA_AE_HEADERS.ACCOUNTING_ENTRY_STATUS_CODE(VARCHAR2(30)) |
F/D | 最終/ドラフト | 列は 25D/値は要確認 |
XLA_AE_HEADERS.GL_TRANSFER_STATUS_CODE(VARCHAR2(30)) |
Y/N | GL へ転送済み/未転送 | 列は 25D/値は要確認 |
XLA_EVENTS.ON_HOLD_FLAG |
Y/N | 保留あり/なし | 25D(公式の説明に Y/N とある) |
言語コード(_TL の LANGUAGE) |
JA/US | 日本語/英語(米国) | — |
BIP のシステム変数
Section titled “BIP のシステム変数”| 変数 | 内容 | 注意 |
|---|---|---|
xdo_user_name |
実行ユーザーの ID | 常に小文字で渡される。比較時は LOWER() でそろえる |
xdo_user_roles |
実行ユーザーに割り当てられたロール | |
xdo_user_report_oracle_lang |
レポート言語(例:JA) |
スケジュール実行では設定されない |
xdo_user_ui_oracle_lang |
UI の言語 | スケジュール実行では設定されない |
スケジュール実行やバーストでは、誰の権限で SQL が実行されるかによって :xdo_user_name の値が変わります。オンラインとスケジュールの両方でテストしてください(BI Publisher の SQL 実践)。
SQL を書く前のチェックリスト
Section titled “SQL を書く前のチェックリスト”- 1 行が何を表すか(粒度)を、Tables and Views の Primary Key で確認した
- 結合は ID 列(Foreign Keys)で行い、番号や名称で結合していない
_ALL表に BU の条件、_TL表に言語の条件、日付有効の表に基準日の条件を付けた- 補助元帳(
XLA_)の結合にAPPLICATION_IDを入れた - まず 1 件に絞り、段ごとに行数を確認した
- 金額は階層ごとに別々に集計し、1 対多の結合の結果をそのまま合計していない
- バインド変数を使い、列側を加工していない
- 結果を、画面や標準レポートの数字と突き合わせた
- BIP の SQL ではデータセキュリティが効かないため、BU・元帳の条件と実行権限を設計した
- 要確認の表・列は、自分の環境と同じリリースの Tables and Views で確認した
公式ドキュメント
Section titled “公式ドキュメント”- Tables and Views for Financials(26D)
- Tables and Views for Financials(26A)概要
- AP_INVOICES_ALL(25D)
- AP_INVOICE_LINES_ALL(25D)
- AP_INVOICE_DISTRIBUTIONS_ALL(25D)
- GL_JE_LINES(26A)
- GL_IMPORT_REFERENCES(25D)
- XLA_TRANSACTION_ENTITIES(26B)
- XLA_EVENTS(25D)
- XLA_AE_HEADERS(25D)
- XLA_AE_LINES(25D)
- XLA_DISTRIBUTION_LINKS(26A)
- FUN_ALL_BUSINESS_UNITS_V(26C)
- PO_HEADERS_ALL(26A)
- POZ_SUPPLIERS_V(25D)
- HZ_PARTIES(Tables and Views for Sales, Fusion Service, and Field Service)
- Create Datasets Using SQL Queries
- Include User Information Stored in System Variables in Your Report Data
本サイトは学習目的で個人が作成した非公式の教材であり、Oracle Corporation およびその関連会社とは関係ありません。内容の正確性は保証しません。最新の仕様・試験範囲は必ず公式ドキュメントと Oracle University の情報で確認してください。
模擬テストの問題は公開されている出題範囲(Exam Topics)と公式ドキュメントをもとに独自に作成したもので、実際の試験問題ではありません。
Oracle、Java、MySQL は Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。その他の製品名・会社名は各社の商標です。
© 2026 Fusion ERP 実装ラボ