コンテンツにスキップ

主要テーブル・SQL チートシート

接頭辞 領域 表の例
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 件)
列 指す組織 例
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 です。

結合(親 → 子) 結合キー 確認 注意
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_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+言語 名称/要確認 品目は在庫組織ごとに行がある。組織の条件を必ず付ける

業務の表には ID しかありません。名称は ID から結合して取ります。

BU 名と元帳名(FUN_ALL_BUSINESS_UNITS_V は 26C で確認済み。GL_LEDGERS の名称列は要確認)
SELECT bu.bu_name,
gl.name AS ledger_name,
aia.invoice_num
FROM 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_id
WHERE aia.org_id = :P_BU_ID

FUN_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 を値にします。

BU の値リスト(表示名と値)
SELECT bu.bu_name AS label,
bu.bu_id AS value
FROM fun_all_business_units_v bu
ORDER BY bu.bu_name
仕入先番号と仕入先名
SELECT ps.segment1 AS supplier_number,
hp.party_name AS supplier_name
FROM 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_id

POZ_SUPPLIERS_V(25D で確認)を使うと、VENDOR_NAME(仕入先名)と VENDOR_NAME_ALT(音声読み名)をまとめて取れます。支払の表 AP_CHECKS_ALL の VENDOR_NAME は、支払時点の名称のコピーです。

顧客アカウント番号と顧客名(AR。列は要確認)
SELECT hca.account_number,
hp.party_name AS customer_name
FROM 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 の設計で決まる)
SELECT gcc.segment1 AS company,
gcc.segment2 AS department,
gcc.segment3 AS account,
gjl.accounted_dr,
gjl.accounted_cr
FROM gl_je_lines gjl
JOIN gl_code_combinations gcc
ON gcc.code_combination_id = gjl.code_combination_id
WHERE gjl.ledger_id = :P_LEDGER_ID
AND gjl.period_name = :P_PERIOD_NAME
  • SEGMENT1 が会社とは限りません。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 要確認

GL の期間は、期間名(PERIOD_NAME、例:Apr-26)で持つのが基本です。仕訳明細は、元帳 ID と期間名で絞れます(上の SQL)。期間名は文字列として並べても時系列になりません。

元帳の期間の値リスト(新しい順。調整期間を除く。列は要確認)
SELECT gps.period_name AS label,
gps.period_name AS value
FROM gl_period_statuses gps
WHERE gps.application_id = 101 -- GL
AND gps.ledger_id = :P_LEDGER_ID
AND NVL(gps.adjustment_period_flag, 'N') = 'N'
ORDER BY gps.start_date DESC
  • GL の期間ステータスは APPLICATION_ID = 101 です。期間の状態は元帳とアプリケーションごとに持つため、補助元帳の期間は、そのアプリケーションの ID(環境で確認)で調べます
  • 期間の範囲(期首から当月まで)は、期間名の BETWEEN ではなく、GL_PERIODS などの開始日・終了日で決めます(日付の列名は要確認)
  • 期間のオープン・クローズの状態は、元帳とアプリケーションごとに違います(期間締め)
多言語表の結合パターン(<…> は表に合わせて置き換え)
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 は、スケジュール実行では設定されません
日付は範囲で比較する(終了日を含める)
WHERE aia.creation_date >= :P_FROM_DATE
AND 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 にそろえます
  • 「省略可」の形は実行計画が不利になることがあります。全件実行が多い帳票では、必須にするか使い分けます
基準日で 1 行に絞る(仕入先サイトの例)
SELECT pssam.vendor_site_id,
pssam.vendor_site_code,
pssam.prc_bu_id
FROM poz_supplier_sites_all_m pssam
WHERE pssam.vendor_id = :P_VENDOR_ID
AND :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_remaining
FROM 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_id
WHERE aia.org_id = :P_BU_ID
結合で行が増えていないかを確かめる(明細 → 配分)
SELECT COUNT(*) AS row_count,
COUNT(DISTINCT aila.line_number) AS line_count
FROM 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_number
WHERE aila.invoice_id = :P_INVOICE_ID
-- row_count が line_count より大きければ、配分の分だけ明細の行が増えている。明細金額をこの結果で合計しない

金額は、どの階層のものかを決めてから合計します。請求書の総額はヘッダー、勘定別の金額は配分、会計後の金額は SLA の仕訳明細です。

値は代表例です。全量は、環境で 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 日本語/英語(米国) —
変数 内容 注意
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 実践)。

  1. 1 行が何を表すか(粒度)を、Tables and Views の Primary Key で確認した
  2. 結合は ID 列(Foreign Keys)で行い、番号や名称で結合していない
  3. _ALL 表に BU の条件、_TL 表に言語の条件、日付有効の表に基準日の条件を付けた
  4. 補助元帳(XLA_)の結合に APPLICATION_ID を入れた
  5. まず 1 件に絞り、段ごとに行数を確認した
  6. 金額は階層ごとに別々に集計し、1 対多の結合の結果をそのまま合計していない
  7. バインド変数を使い、列側を加工していない
  8. 結果を、画面や標準レポートの数字と突き合わせた
  9. BIP の SQL ではデータセキュリティが効かないため、BU・元帳の条件と実行権限を設計した
  10. 要確認の表・列は、自分の環境と同じリリースの Tables and Views で確認した

本サイトは学習目的で個人が作成した非公式の教材であり、Oracle Corporation およびその関連会社とは関係ありません。内容の正確性は保証しません。最新の仕様・試験範囲は必ず公式ドキュメントと Oracle University の情報で確認してください。

模擬テストの問題は公開されている出題範囲(Exam Topics)と公式ドキュメントをもとに独自に作成したもので、実際の試験問題ではありません。

Oracle、Java、MySQL は Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。その他の製品名・会社名は各社の商標です。

© 2026 Fusion ERP 実装ラボ