預先定義的檢視表
Oracle Blockchain Platform Digital Assets Edition 提供下列預先定義的資料庫檢視。
-
ACCOUNT_TRANSACTION_VIEW
- 此檢視提供每個帳戶的統一交易歷史記錄,擷取交易的借方 (
from_account_id
) 和貸方 (to_account_id
) 兩側。您可以使用此檢視來查詢連結至帳戶的所有交易,而無需掃描原始鏈碼狀態資料。 - 機密 SQL 查詢、系統擁有者:
CREATE VIEW ACCOUNT_TRANSACTION_VIEW as SELECT tx."VALUEJSON".from_account_id AS "KEY", tx."VALUEJSON".transaction_id AS "TRANSACTION_ID", tx."VALUEJSON" AS "TRANSACTION_DETAILS", COALESCE(CAST(tx."VALUEJSON".blockNo AS NUMBER), tx."BLOCKNO") AS ORDER_BLOCKNO, COALESCE(CAST(tx."VALUEJSON".txnNo AS NUMBER), tx."TXNNO") AS ORDER_TXNNO FROM "<obpInstanceName>_<channelName>_state" tx WHERE tx."CHAINCODEID" = '<chaincodeName>' AND tx."VALUEJSON".assetType = 'otransaction' AND tx.KEY NOT LIKE '_obp2pc_' AND tx."VALUEJSON".transaction_type NOT IN ('EXECUTE_HOLD_RECEIVER', 'CREATE_ACCOUNT') AND tx."VALUEJSON".from_account_id IS NOT NULL UNION ALL SELECT tx."VALUEJSON".to_account_id AS "KEY", tx."VALUEJSON".transaction_id AS "TRANSACTION_ID", tx."VALUEJSON" AS "TRANSACTION_DETAILS", COALESCE(CAST(tx."VALUEJSON".blockNo AS NUMBER), tx."BLOCKNO") AS ORDER_BLOCKNO, COALESCE(CAST(tx."VALUEJSON".txnNo AS NUMBER), tx."TXNNO") AS ORDER_TXNNO FROM "<obpInstanceName>_<channelName>_state" tx WHERE tx."CHAINCODEID" = '<chaincodeName>' AND tx."VALUEJSON".assetType = 'otransaction' AND tx.KEY NOT LIKE '_obp2pc_' AND tx."VALUEJSON".transaction_type NOT IN ('EXECUTE_HOLD_SENDER', 'CREATE_ACCOUNT') AND tx."VALUEJSON".to_account_id IS NOT NULL
資料來源:
<obpInstanceName>_<channelName>_state
,主要狀態表格,保留 JSON 格式的鏈碼資料金鑰邏輯:- 僅包含下列陳述式為真的資料列。
CHAINCODEID = <chaincodeName>
assetType = 'otransaction'
KEY
的開頭不是_obp2pc_
transaction_type
不是EXECUTE_HOLD_RECEIVER
、EXECUTE_HOLD_SENDER
或CREATE_ACCOUNT
- 從傳出交易 (
from_account_id
) 與傳入交易 (to_account_id
) 擷取帳戶參與。 - 即使缺少 JSON 值,仍使用
COALESCE
來確保資料欄 (ORDER_BLOCKNO
、ORDER_TXNNO
) 的順序一致。 - 將外送和內送交易與
UNION ALL
結合。
輸出資料欄:KEY
:與交易 (寄件者或接收者) 關聯的帳戶 ID。TRANSACTION_ID
:交易的唯一 ID。TRANSACTION_DETAILS
:交易的完整 JSON 物件。ORDER_BLOCKNO
:用於排序的區塊編號 (若有的話,從 JSON,否則為區塊中繼資料)。ORDER_TXNNO
:區塊中的交易編號 (若有的話,來自 JSON,否則會封鎖中繼資料)。
- 僅包含下列陳述式為真的資料列。
- 資料 SourcesConfidential SQL 查詢,參與者銀行:
CREATE VIEW ACCOUNT_TRANSACTION_VIEW AS SELECT tx."VALUEJSON".from_account_id AS "KEY", tx."VALUEJSON".transaction_id AS "TRANSACTION_ID", tx."VALUEJSON" AS "TRANSACTION_DETAILS", COALESCE(CAST(tx."VALUEJSON".blockNo AS NUMBER), tx."BLOCKNO") AS ORDER_BLOCKNO, COALESCE(CAST(tx."VALUEJSON".txnNo AS NUMBER), tx."TXNNO") AS ORDER_TXNNO FROM "<obpInstanceName>_<channelName>_state" tx WHERE tx."CHAINCODEID" = '<chaincodeName>' AND tx."VALUEJSON".assetType = 'otransaction' AND tx.KEY NOT LIKE '_obp2pc_' AND tx."VALUEJSON".transaction_type NOT IN ('EXECUTE_HOLD_RECEIVER', 'CREATE_ACCOUNT') AND tx."VALUEJSON".from_account_id IS NOT NULL UNION ALL SELECT tx."VALUEJSON".to_account_id AS "KEY", tx."VALUEJSON".transaction_id AS "TRANSACTION_ID", tx."VALUEJSON" AS "TRANSACTION_DETAILS", COALESCE(CAST(tx."VALUEJSON".blockNo AS NUMBER), tx."BLOCKNO") AS ORDER_BLOCKNO, COALESCE(CAST(tx."VALUEJSON".txnNo AS NUMBER), tx."TXNNO") AS ORDER_TXNNO FROM "<obpInstanceName>_<channelName>_state" tx WHERE tx."CHAINCODEID" = '<chaincodeName>' AND tx."VALUEJSON".assetType = 'otransaction' AND tx.KEY NOT LIKE '_obp2pc_' AND tx."VALUEJSON".transaction_type NOT IN ('EXECUTE_HOLD_SENDER', 'CREATE_ACCOUNT') AND tx."VALUEJSON".to_account_id IS NOT NULL
資料來源:
<obpInstanceName>_<channelName>_state
,主要狀態表格,保留 JSON 格式的鏈碼資料金鑰邏輯:- 僅包含下列陳述式為真的資料列。
CHAINCODEID = <chaincodeName>
assetType = 'otransaction'
KEY
的開頭不是_obp2pc_
transaction_type
不是EXECUTE_HOLD_RECEIVER
、EXECUTE_HOLD_SENDER
或CREATE_ACCOUNT
- 從傳出交易 (
from_account_id
) 與傳入交易 (to_account_id
) 擷取帳戶參與。 - 即使缺少 JSON 值,仍使用
COALESCE
來確保資料欄 (ORDER_BLOCKNO
、ORDER_TXNNO
) 的順序一致。 - 將外送和內送交易與
UNION ALL
結合。
輸出資料欄:KEY
:與交易 (寄件者或接收者) 關聯的帳戶 ID。TRANSACTION_ID
:交易的唯一 ID。TRANSACTION_DETAILS
:交易的完整 JSON 物件。ORDER_BLOCKNO
:用於排序的區塊編號 (若有的話,從 JSON,否則為區塊中繼資料)。ORDER_TXNNO
:區塊中的交易編號 (若有的話,來自 JSON,否則會封鎖中繼資料)。
- 僅包含下列陳述式為真的資料列。
-
TRANSACTION_PDC_VIEW
- 此檢視提供私人資料收集的交易層次餘額與金額明細。確保只擷取每筆交易的最新記錄。
- 機密 SQL 查詢、系統擁有者:
CREATE VIEW TRANSACTION_PDC_VIEW as SELECT sub."VALUEJSON".transaction_id AS transaction_id, sub."CHAINCODEID", sub."VALUEJSON".amount AS quantity, sub."VALUEJSON".from_account_balance AS from_account_balance, sub."VALUEJSON".from_account_onhold_balance AS from_account_onhold_balance, sub."VALUEJSON".to_account_balance AS to_account_balance, sub."VALUEJSON".to_account_onhold_balance AS to_account_onhold_balance FROM ( SELECT hist."VALUEJSON", hist."CHAINCODEID", ROW_NUMBER() OVER ( PARTITION BY hist."VALUEJSON".transaction_id ORDER BY hist.TXNTIMESTAMP DESC ) AS rn FROM "<obpInstanceName>_<channelName>_hist" hist WHERE hist."CHAINCODEID" = '${implicitPDCName}' AND hist."VALUEJSON".assetType = 'otransactionpdc' AND hist."KEY" NOT LIKE '_obp2pc_staged_%' ) sub where rn = 1 UNION ALL SELECT "TRANSACTION_ID","CHAINCODEID","QUANTITY","FROM_ACCOUNT_BALANCE","FROM_ACCOUNT_ONHOLD_BALANCE","TO_ACCOUNT_BALANCE","TO_ACCOUNT_ONHOLD_BALANCE" FROM "$TRANSACTION_PDC_VIEW"@${org1Name}_LINK UNION ALL SELECT "TRANSACTION_ID","CHAINCODEID","QUANTITY","FROM_ACCOUNT_BALANCE","FROM_ACCOUNT_ONHOLD_BALANCE","TO_ACCOUNT_BALANCE","TO_ACCOUNT_ONHOLD_BALANCE" FROM "$TRANSACTION_PDC_VIEW"@${org2Name}_LINK
目的:透過資料庫連結聚總整個組織的資料。
Data Sources:<obpInstanceName>_<channelName>_hist
:包含私人資料收集記錄的歷史鏈碼資料表$TRANSACTION_PDC_VIEW@${org1Name}_LINK
:透過資料庫連結存取之組織 1 的遠端檢視。$TRANSACTION_PDC_VIEW@${org2Name}_LINK
:透過資料庫連結存取之組織 2 的遠端檢視。
金鑰邏輯:- 僅篩選下列陳述式為真的記錄。
CHAINCODEID = ${implicitPDCName}
assetType = 'otransactionpdc'
KEY
的開頭不是_obp2pc_staged_.
- 使用
ROW_NUMBER()
視窗功能。- 依
transaction_id
區分的分割區。 - 按
TXNTIMESTAMP DESC
排序。 - 僅保留最新的記錄
(rn = 1)
。
- 依
- 結合來自本機專用資料收集歷史記錄表格的資料、組織 1 的專用資料收集檢視 (透過資料庫連結),以及組織 2 的專用資料收集檢視 (透過資料庫連結)。
輸出資料欄:TRANSACTION_ID
:交易的唯一 ID。CHAINCODEID
:與 PDC 記錄相關聯的鏈碼識別碼。QUANTITY
:異動金額或移轉數量。FROM_ACCOUNT_BALANCE
:交易後的寄件人帳戶餘額。FROM_ACCOUNT_ONHOLD_BALANCE
:交易後寄件人帳戶的保留餘額。TO_ACCOUNT_BALANCE
:交易後的接收者帳戶餘額。TO_ACCOUNT_ONHOLD_BALANCE
:交易後接收者帳戶的保留餘額。
- 機密 SQL 查詢、參與者銀行:
CREATE VIEW TRANSACTION_PDC_VIEW as SELECT sub."VALUEJSON".transaction_id AS transaction_id, sub."CHAINCODEID", sub."VALUEJSON".amount AS quantity, sub."VALUEJSON".from_account_balance AS from_account_balance, sub."VALUEJSON".from_account_onhold_balance AS from_account_onhold_balance, sub."VALUEJSON".to_account_balance AS to_account_balance, sub."VALUEJSON".to_account_onhold_balance AS to_account_onhold_balance FROM ( SELECT hist."VALUEJSON", hist."CHAINCODEID", ROW_NUMBER() OVER ( PARTITION BY hist."VALUEJSON".transaction_id ORDER BY hist.TXNTIMESTAMP DESC ) AS rn FROM "<obpInstanceName>_<channelName>_hist" hist WHERE hist."CHAINCODEID" = '<implicitPDCName>' AND hist."VALUEJSON".assetType = 'otransactionpdc' AND hist."KEY" NOT LIKE '_obp2pc_staged_%' ) sub where rn = 1
Data Sources:<obpInstanceName>_<channelName>_hist
:包含私人資料收集記錄的歷史鏈碼資料表
金鑰邏輯:- 僅篩選下列陳述式為真的記錄。
CHAINCODEID = ${implicitPDCName}
assetType = 'otransactionpdc'
KEY
的開頭不是_obp2pc_staged_.
- 使用
ROW_NUMBER()
視窗功能。- 依
transaction_id
區分的分割區。 - 按
TXNTIMESTAMP DESC
排序。 - 僅保留最新的記錄
(rn = 1)
。
- 依
輸出資料欄:TRANSACTION_ID
:交易的唯一 ID。CHAINCODEID
:與 PDC 記錄相關聯的鏈碼識別碼。QUANTITY
:異動金額或移轉數量。FROM_ACCOUNT_BALANCE
:交易後的寄件人帳戶餘額。FROM_ACCOUNT_ONHOLD_BALANCE
:交易後寄件人帳戶的保留餘額。TO_ACCOUNT_BALANCE
:交易後的接收者帳戶餘額。TO_ACCOUNT_ONHOLD_BALANCE
:交易後接收者帳戶的保留餘額。
-
ACCOUNTS_VIEW
- 此檢視提供跨組織的帳戶合併檢視。
- 機密 SQL 查詢、系統擁有者:
CREATE VIEW ACCOUNTS_VIEW as WITH hist_ranked AS ( SELECT hist.valuejson, hist."VALUEJSON".account_id AS account_id, ROW_NUMBER() OVER ( PARTITION BY hist."VALUEJSON".account_id ORDER BY hist.TXNTIMESTAMP DESC ) AS rn FROM "<obpInstanceName>_<channelName>_hist" hist WHERE hist."CHAINCODEID" = '<implicitPDCName>' AND hist."VALUEJSON".assetType = 'oaccountpdc' ), state_filtered AS ( SELECT state.key, state.valueJSON FROM "<obpInstanceName>_<channelName>_state" state WHERE state."CHAINCODEID" = '${chaincodeName}' AND state."VALUEJSON".assetType = 'oaccount' ), token_details AS ( SELECT state.key, state.valueJson, COALESCE ( TO_NUMBER(JSON_VALUE(valuejson, '$.divisible.decimal' RETURNING VARCHAR2)), 0) AS decimal_value FROM "<obpInstanceName>_<channelName>_state" state WHERE state."CHAINCODEID" = '<chaincodeName>' AND state."VALUEJSON".assetType = 'otoken' ) SELECT s.key as account_id, s.valueJSON.org_id AS org_id, h.valuejson.user_id AS user_id, h.valuejson.custom_account_id AS custom_account_id, s.valueJSON.token_id AS token_id, t.decimal_value FROM state_filtered s LEFT JOIN hist_ranked h ON h.account_id = s.key AND h.rn = 1 LEFT JOIN token_details t ON s.valueJSON.token_id = t.key WHERE h.valuejson is not null UNION ALL SELECT "ACCOUNT_ID","ORG_ID","USER_ID","CUSTOM_ACCOUNT_ID", "TOKEN_ID", "DECIMAL_VALUE" FROM "ACCOUNTS_VIEW"@<org1Name>_LINK WHERE "USER_ID" IS NOT NULL UNION ALL SELECT "ACCOUNT_ID","ORG_ID","USER_ID","CUSTOM_ACCOUNT_ID", "TOKEN_ID", "DECIMAL_VALUE" FROM "ACCOUNTS_VIEW"@$<org2Name>_LINK WHERE "USER_ID" IS NOT NULL
目的:此檢視提供跨組織的帳戶合併檢視,並結合下列資訊。- 目前帳戶狀態
- 最新的帳戶相關私人資料 (私人資料收集)
- 權杖描述資料,例如小數位數
- 透過資料庫連結的跨組織帳戶明細
Data Sources:<obpInstanceName>_<channelName>_hist
:歷史鏈碼資料,用於擷取最近的帳戶私人資料收集項目 (oaccountpdc
)。<obpInstanceName>_<channelName>_state
:帳戶 (oaccount
) 和記號 (otoken
) 的目前狀態資料。ACCOUNTS_VIEW@<org1Name>_LINK
:來自組織 1 的遠端檢視。ACCOUNTS_VIEW@<org2Name>_LINK
:來自組織 2 的遠端檢視。
金鑰邏輯:hist_ranked
CTE:使用ROW_NUMBER()
搭配ORDER BY TXNTIMESTAMP DESC
取得每一account_id
的最新專用資料收集記錄。state_filtered
CTE:從狀態表格中選取帳戶 (oaccount
)。token_details
CTE:擷取小數位數的記號詳細資訊 (otoken
) (如果遺漏,則預設為0
)。- 最終選擇結合:帳戶狀態 (
state_filtered
),包含最新的專用資料收集詳細資訊 (hist_ranked
) 和記號描述資料 (token_details
)。 - 僅確保具有相關聯私人資料收集 (
WHERE h.valuejson IS NOT NULL
) 的帳戶。 - 使用來自其他組織的資料庫連結聯集來擴充帳戶資料。
輸出資料欄:ACCOUNT_ID
:帳戶的唯一識別碼。ORG_ID
:與帳戶相關聯的組織 ID。USER_ID
:連結至帳戶的使用者 ID (從私人資料收集)。CUSTOM_ACCOUNT_ID
:自訂使用者定義的帳戶識別碼。TOKEN_ID
:與帳戶相關聯的權杖識別碼。DECIMAL_VALUE
:記號小數位數 (若遺漏,則預設為 0)。
- 機密 SQL 查詢、參與者銀行:
CREATE VIEW ACCOUNTS_VIEW AS WITH hist_ranked AS ( SELECT hist.valuejson, hist."VALUEJSON".account_id AS account_id, ROW_NUMBER() OVER ( PARTITION BY hist."VALUEJSON".account_id ORDER BY hist.TXNTIMESTAMP DESC ) AS rn FROM "<obpInstanceName>_<channelName>_hist" hist WHERE hist."CHAINCODEID" = '<implicitPDCName>' AND hist."VALUEJSON".assetType = 'oaccountpdc' ), state_filtered AS ( SELECT state.key, state.valueJSON FROM "<obpInstanceName>_<channelName>_state" state WHERE state."CHAINCODEID" = '<chaincodeName>' AND state."VALUEJSON".assetType = 'oaccount' ), token_details AS ( SELECT state.key, COALESCE (TO_NUMBER(JSON_VALUE(valuejson, '$.divisible.decimal' RETURNING VARCHAR2)), 0) AS decimal_value FROM "<obpInstanceName>_<channelName>_state" state WHERE state."CHAINCODEID" = '<chaincodeName>' AND state."VALUEJSON".assetType = 'otoken' ) SELECT s.key AS account_id, s.valueJSON.org_id AS org_id, h.valuejson.user_id AS user_id, h.valuejson.custom_account_id AS custom_account_id, s.valueJSON.token_id AS token_id, t.decimal_value FROM state_filtered s LEFT JOIN hist_ranked h ON h.account_id = s.key AND h.rn = 1 LEFT JOIN token_details t ON s.valueJSON.token_id = t.key
目的:此檢視提供跨組織的帳戶合併檢視,並結合下列資訊。- 目前帳戶狀態
- 最新的帳戶相關私人資料 (私人資料收集)
- 權杖描述資料,例如小數位數
Data Sources:<obpInstanceName>_<channelName>_hist
:歷史鏈碼資料,用於擷取最近的帳戶私人資料收集項目 (oaccountpdc
)。<obpInstanceName>_<channelName>_state
:帳戶 (oaccount
) 和記號 (otoken
) 的目前狀態資料。
金鑰邏輯:hist_ranked
CTE:使用ROW_NUMBER()
搭配ORDER BY TXNTIMESTAMP DESC
取得每一account_id
的最新專用資料收集記錄。state_filtered
CTE:從狀態表格中選取帳戶 (oaccount
)。token_details
CTE:擷取小數位數的記號詳細資訊 (otoken
) (如果遺漏,則預設為0
)。- 最終選擇結合:帳戶狀態 (
state_filtered
),包含最新的專用資料收集詳細資訊 (hist_ranked
) 和記號描述資料 (token_details
)。 - 僅確保具有相關聯私人資料收集 (
WHERE h.valuejson IS NOT NULL
) 的帳戶。
輸出資料欄:ACCOUNT_ID
:帳戶的唯一識別碼。ORG_ID
:與帳戶相關聯的組織 ID。USER_ID
:連結至帳戶的使用者 ID (從私人資料收集)。CUSTOM_ACCOUNT_ID
:自訂使用者定義的帳戶識別碼。TOKEN_ID
:與帳戶相關聯的權杖識別碼。DECIMAL_VALUE
:記號小數位數 (若遺漏,則預設為 0)。
-
ACCOUNTS_MOD
- 此檢視提供有趣的記號登錄資料、將組織和使用者對應至其相關有趣的記號帳戶和記號的結構化表示法。它透過扁平化巢狀 JSON 陣列,簡化對儲存在鏈碼狀態中帳戶權杖關係的存取,讓應用程式和分析查詢更容易使用。
- 一般 SQL 查詢,TypeScript:
`create view ACCOUNTS_MOD as SELECT s.blockno, s.txnno, s.key, s.valuejson.assetType, s.valueJson.org_id, s.valueJson.user_id, ft.account_id, ft.token_id FROM "<obpInstanceName>_<channelName>_state" s, json_table(s.valuejson, '$.associated_ft_accounts[*]' Columns(lng_number FOR ORDINALITY, account_id varchar2 (1000) Path '$.account_id' null on empty, token_id varchar2 (16) Path '$.token_id' null on empty)) ft where s.key like '%oftregistry%' AND s.chaincodeid = '<chaincodeName>' order by s.blockno DESC, s.txnno DESC`
Data Sources:<obpInstanceName>_<channelName>_state
:保留 JSON 格式鏈碼資料的主要狀態表格。
金鑰邏輯:- 依登錄機碼篩選:僅包含機碼包含
oftregistry
的記錄。 - 依鏈碼篩選:將結果限制為指定的鏈碼 (
<chaincodeName>
)。 - 扁平化巢狀 JSON:使用
JSON_TABLE
將associated_ft_accounts
陣列展開為每個帳戶權杖組的個別資料列。account_id
:有趣的記號帳戶 ID。token_id
:連結至帳戶的權杖。lng_number
:條例 (用於內部追蹤陣列順序)。
- 排序:結果會依區塊編號 (
blockno
) 和交易編號 (txnno
) 以遞減順序排序,確保先顯示最近的關聯。
輸出資料欄:BLOCKNO
:記錄登錄更新的區塊號碼。TXNNO
:區塊中的交易編號。KEY
:代表有趣記號登錄項目的狀態索引鍵。ASSETTYPE
:資產類型 (預期為:oftregistry
)。ORG_ID
:JSON 的組織 ID。USER_ID
:與登錄記錄相關聯的使用者識別碼。ACCOUNT_ID
:從巢狀陣列擷取的有趣記號帳戶 ID。TOKEN_ID
:已擷取連結至有趣記號帳戶的記號 ID。
- 一般 SQL 查詢,執行:
`create view ACCOUNTS_MOD as SELECT s.blockno, s.txnno, s.key, s.valuejson.AssetType, s.valueJson.OrgId as org_id, s.valueJson.UserId as user_id, ft.account_id, ft.token_id FROM "<obpInstanceName>_<channelName>_state" s, json_table(s.valuejson, '$.AssociatedFtAccounts[*]' Columns(lng_number FOR ORDINALITY, account_id varchar2 (1000) Path '$.AccountId' null on empty, token_id varchar2 (16) Path '$.TokenId' null on empty)) ft where s.key like '%oftregistry%' AND s.chaincodeid = '<chaincodeName>' order by s.blockno DESC, s.txnno DESC`
此視觀表與一般 SQL 查詢 TypeScript 視觀表相同。唯一的差異在於 JSON 欄位命名慣例,此慣例使用 Pascal 大小寫而非小寫。AssetType
:先前為assetType
OrgId
:先前為org_id
UserId
:先前為user_id
AssociatedFtAccounts
:先前為associated_ft_accounts
AccountId
:先前為account_id
TokenId
:先前為token_id
OrgId AS org_id
),讓輸出資料欄名稱在檢視之間保持一致。 - 機密 SQL 查詢、系統擁有者:
CREATE VIEW ACCOUNTS_MOD AS SELECT "ACCOUNT_ID","ORG_ID","USER_ID","CUSTOM_ACCOUNT_ID","TOKEN_ID","DECIMAL_VALUE" FROM ( WITH hist_ranked AS ( SELECT hist.valuejson, hist."VALUEJSON".account_id AS account_id, ROW_NUMBER() OVER ( PARTITION BY hist."VALUEJSON".account_id ORDER BY hist.TXNTIMESTAMP DESC ) AS rn FROM "<obpInstanceName>_<channelName>_hist" hist WHERE hist."CHAINCODEID" = '<implicitPDCName>' AND hist."VALUEJSON".assetType = 'oaccountpdc' ), state_filtered AS ( SELECT state.key, state.valueJSON FROM "<obpInstanceName>_<channelName>_state" state WHERE state."CHAINCODEID" = '<chaincodeName>' AND state."VALUEJSON".assetType = 'oaccount' ), token_details AS ( SELECT state.key, state.valueJson, COALESCE( TO_NUMBER(JSON_VALUE(valuejson, '$.divisible.decimal' RETURNING VARCHAR2)), 0 ) AS decimal_value FROM "<obpInstanceName>_<channelName>_state" state WHERE state."CHAINCODEID" = '<chaincodeName>' AND state."VALUEJSON".assetType = 'otoken' ) SELECT s.key AS account_id, s.valueJSON.org_id AS org_id, h.valuejson.user_id AS user_id, h.valuejson.custom_account_id AS custom_account_id, s.valueJSON.token_id AS token_id, t.decimal_value FROM state_filtered s LEFT JOIN hist_ranked h ON h.account_id = s.key AND h.rn = 1 LEFT JOIN token_details t ON s.valueJSON.token_id = t.key WHERE h.valuejson IS NOT NULL ) UNION ALL SELECT "ACCOUNT_ID","ORG_ID","USER_ID","CUSTOM_ACCOUNT_ID","TOKEN_ID","DECIMAL_VALUE" FROM "ACCOUNTS_MOD"@<org1Name>_LINK UNION ALL SELECT "ACCOUNT_ID","ORG_ID","USER_ID","CUSTOM_ACCOUNT_ID","TOKEN_ID","DECIMAL_VALUE" FROM "ACCOUNTS_MOD"@<org2Name>_LINK UNION ALL SELECT "ACCOUNT_ID","ORG_ID","USER_ID","CUSTOM_ACCOUNT_ID","TOKEN_ID","DECIMAL_VALUE" FROM "ACCOUNTS_MOD"@<org3Name>_LINK;
Data Sources:<obpInstanceName>_<channelName>_hist
:儲存帳戶私人資料 (oaccountpdc
) 依時間順序變更的歷史記錄表格。<obpInstanceName>_<channelName>_state
:保存目前鏈碼狀態為 JSON 格式的狀態表格,用於oaccount
和otoken
詳細資訊。- 遠端組織視觀表:其他組織中 ACCOUNTS_MOD 視觀表的其他資料使用資料庫連結包括:
"ACCOUNTS_MOD"@<org1Name>_LINK
"ACCOUNTS_MOD"@<org2Name>_LINK
"ACCOUNTS_MOD"@<org3Name>_LINK
金鑰邏輯:- 排名歷史記錄:使用
ROW_NUMBER()
從歷史記錄表格中挑選每個帳戶 ID 的最新oaccountpdc
記錄。 - 篩選目前帳戶:只從狀態表格擷取含有
assetType = 'oaccount'
的記錄。 - 結合記號描述資料:透過結合狀態表格中的
otoken
項目來新增記號精確度 (decimal_value
)。 - 合併帳戶明細:將篩選的帳戶記錄與其最近的歷史記錄項目和權杖明細結合。確定只包括具有有效歷史資料 (
h.valuejson IS NOT NULL
) 的帳戶。 - 多重組織聯集:使用
UNION ALL
透過資料庫連結,將本機組織中的帳戶資料與多個遠端組織合併。如此一來,單一整合查詢即可擷取網路中的所有帳戶。
輸出資料欄:ACCOUNT_ID
:帳戶的唯一識別碼。ORG_ID
:擁有帳戶的組織 ID。USER_ID
:連結至客戶的使用者 ID (來自最新歷史記錄)。CUSTOM_ACCOUNT_ID
:選擇性自訂使用者定義的帳戶識別碼。TOKEN_ID
:與帳戶相關聯的權杖識別碼。DECIMAL_VALUE
:記號小數位數 (若遺漏,則預設為 0)。
動態產生:多重組織部份未進行硬式編碼。在命令檔中,會根據
Participant_orgs_list.yml
檔案動態產生額外的聯集。這樣可確保視網路中設定的組織數目而定,檢視會自動調整。範例查詢顯示三個組織來明確,但實際上,工會的數目取決於orgsList
的大小。如需其他詳細資訊,請參閱本主題中有關Participant_orgs_list.yml
檔案的先前資訊。 - 機密 SQL 查詢、參與者銀行:
CREATE VIEW ACCOUNTS_MOD AS WITH hist_ranked AS ( SELECT hist.valuejson, hist."VALUEJSON".account_id AS account_id, ROW_NUMBER() OVER ( PARTITION BY hist."VALUEJSON".account_id ORDER BY hist.TXNTIMESTAMP DESC ) AS rn FROM "<obpInstanceName>_<channelName>_hist" hist WHERE hist."CHAINCODEID" = '<implicitPDCName>' AND hist."VALUEJSON".assetType = 'oaccountpdc' ), state_filtered AS ( SELECT state.key, state.valueJSON FROM "$<obpInstanceName>_<channelName>_state" state WHERE state."CHAINCODEID" = '<chaincodeName>' AND state."VALUEJSON".assetType = 'oaccount' ), token_details AS ( SELECT state.key, COALESCE( TO_NUMBER(JSON_VALUE(valuejson, '$.divisible.decimal' RETURNING VARCHAR2)), 0 ) AS decimal_value FROM "${stateTableName}" state WHERE state."CHAINCODEID" = '${chaincodeName}' AND state."VALUEJSON".assetType = 'otoken' ) SELECT s.key AS account_id, s.valueJSON.org_id AS org_id, h.valuejson.user_id AS user_id, h.valuejson.custom_account_id AS custom_account_id, s.valueJSON.token_id AS token_id, t.decimal_value FROM state_filtered s LEFT JOIN hist_ranked h ON h.account_id = s.key AND h.rn = 1 LEFT JOIN token_details t ON s.valueJSON.token_id = t.key WHERE h.valuejson IS NOT NULL;
此檢視與「機密 SQL 查詢」、「系統擁有者」相同,但僅會擷取本端組織的資料。主要差異如下:- 未使用任何含有資料庫連結的
UNION ALL
。 - 輸出僅包括目前組織之狀態和記錄表中的帳戶。
- 此檢視提供單一組織帳戶登錄,與合併多個組織之帳戶的多重組織變體不同。
- 未使用任何含有資料庫連結的
-
TRANSACTION_MOD
- 此檢視提供所有區塊鏈交易的詳細記錄,擷取中繼資料、參與者、金額及結果餘額。它可以直接從歷史記錄表格擷取結構化欄位,簡化對交易歷史記錄的存取,無需手動剖析原始 JSON。
- 一般 SQL 查詢,TypeScript:
`create view TRANSACTION_MOD as SELECT h.blockno, h.txnno, h.key, h.txntimestamp, h.valuejson.assetType, h.valuejson.transaction_id, h.valuejson.from_account_id, h.valuejson.to_account_id, h.valuejson.transaction_type, h.valuejson.amount, h.valuejson.category as transaction_earmark, h.valuejson.from_account_balance, h.valuejson.to_account_balance FROM "<obpInstanceName>_<channelName>_hist" h where h.key like '%otransaction%' AND h.chaincodeid = '<chaincodeName>' order by h.blockno DESC, h.txnno DESC`
資料來源:
<obpInstanceName>_<channelName>_hist
,包含所有 JSON 格式交易事件的歷史記錄表格。包括交易詳細資訊和關聯的描述資料 (區塊、交易編號、時戳)。金鑰邏輯:- 僅包含下列陳述式為真的資料列。
CHAINCODEID = <chaincodeName>
KEY
包含otransaction
(交易相關記錄的篩選)
- 訂單結果如下。
blockno DESC
(最新的區塊優先)txnno DESC
(區塊內的最新交易優先)
輸出資料欄:BLOCKNO
:記錄交易的區塊號碼。TXNNO
:區塊中的交易編號。KEY
:交易項目的唯一識別碼。TXNTIMESTAMP
:交易完成的時間戳記。ASSETTYPE
:交易的資產類型 (例如,otransaction
)。TRANSACTION_ID
:交易的唯一 ID。FROM_ACCOUNT_ID
:產生資產 / 值的來源帳戶 ID。TO_ACCOUNT_ID
:資產 / 值的轉移目標帳戶 ID。TRANSACTION_TYPE
:交易的類型 (例如,轉帳、借方、貸方)。AMOUNT
:交易所涉及的金額。TRANSACTION_EARMARK
:交易的類別或地標。FROM_ACCOUNT_BALANCE
:交易後的來源帳戶餘額。TO_ACCOUNT_BALANCE
:交易後的目的地帳戶餘額。
- 僅包含下列陳述式為真的資料列。
- 一般 SQL 查詢,執行:
`create view TRANSACTION_MOD as SELECT h.blockno, h.txnno, h.key, h.txntimestamp, h.valuejson.AssetType, h.valuejson.TransactionId as transaction_id, h.valuejson.FromAccountId as from_account_id, h.valuejson.ToAccountId as to_account_id, h.valuejson.TransactionType as transaction_type, h.valuejson.Amount, h.valuejson.Category as transaction_earmark, h.valuejson.FromAccountBalance as from_account_balance, h.valuejson.ToAccountBalance as to_account_balance FROM "<obpInstanceName>_<channelName>_hist" h where h.key like '%otransaction%' AND h.chaincodeid = '<chaincodeName>' order by h.blockno DESC, h.txnno DESC`
此視觀表與一般 SQL 查詢 TypeScript 視觀表相同。唯一的差異在於 JSON 欄位命名慣例,此慣例使用 Pascal 大小寫而非小寫。AssetType
:先前為assetType
TransactionId
:先前為transaction_id
FromAccountId
:先前為from_account_id
ToAccountId
:先前為to_account_id
TransactionType
:先前為transaction_type
Amount
:先前為amount
Category
:先前為category
FromAccountBalance
:先前為from_account_balance
ToAccountBalance
:先前為to_account_balance
TransactionId AS transaction_id
),讓所有檢視的輸出資料欄名稱保持一致。 - 機密 SQL 查詢、系統擁有者:
`CREATE VIEW TRANSACTION_MOD AS SELECT COALESCE(CAST(sub."VALUEJSON".blockNo AS NUMBER), sub."BLOCKNO") AS BLOCKNO, COALESCE(CAST(sub."VALUEJSON".txnNo AS NUMBER), sub."TXNNO") AS TXNNO, sub.key, sub.txntimestamp, sub.valuejson.assetType, sub.valuejson.transaction_id, sub.valuejson.from_account_id, sub.valuejson.to_account_id, sub.valuejson.transaction_type, (TO_NUMBER(sub.quantity) / POWER(10, sub.decimal_value)) as amount, sub.valuejson.category as transaction_earmark, (TO_NUMBER(sub.from_account_balance) / POWER(10, sub.decimal_value)) as from_account_balance, (TO_NUMBER(sub.to_account_balance) / POWER(10, sub.decimal_value)) as to_account_balance from ( SELECT hist.*, pdc.*, CASE WHEN hist."VALUEJSON".from_account_id IS NOT NULL THEN (SELECT DECIMAL_VALUE FROM "ACCOUNTS_MOD" WHERE ACCOUNT_ID = hist."VALUEJSON".from_account_id FETCH FIRST 1 ROW ONLY) WHEN hist."VALUEJSON".to_account_id IS NOT NULL THEN (SELECT DECIMAL_VALUE FROM "ACCOUNTS_MOD" WHERE ACCOUNT_ID = hist."VALUEJSON".to_account_id FETCH FIRST 1 ROW ONLY) ELSE 0 END AS decimal_value, ROW_NUMBER() OVER ( PARTITION BY hist."VALUEJSON".transaction_id ORDER BY hist.TXNTIMESTAMP DESC ) AS rn FROM "<obpInstanceName>_<channelName>_hist" hist LEFT JOIN "<transactionPDCViewName>" pdc ON hist.key = pdc.TRANSACTION_ID WHERE hist."CHAINCODEID" = '<chaincodeName>' AND hist."VALUEJSON".assetType = 'otransaction' AND hist."KEY" NOT LIKE '_obp2pc_staged_%' ) sub where rn = 1`
Data Sources:<obpInstanceName>_<channelName>_hist
:儲存所有交易版本的歷史鏈碼表格。<transactionPDCViewName>
:包含私人資料收集交易詳細資料的檢視,已結合以強化交易記錄。ACCOUNTS_MOD
:用來擷取帳戶餘額與交易金額正確decimal_value
的參考檢視。
金鑰邏輯:- 僅篩選下列陳述式為真的資料列。
CHAINCODEID = <chaincodeName>
assetType = 'otransaction'
KEY
的開頭不是_obp2pc_staged_
- 使用以
transaction_id
分割的ROW_NUMBER()
(依txntimestamp DESC
排序),確保只包含每筆交易的最新記錄。 - 根據交易是否涉及
from_account_id
或to_account_id
,從ACCOUNTS_MOD
動態擷取decimal_value
。 - 金額與餘額 (
amount
、from_account_balance
、to_account_balance
) 是以小數精確度來調整,使用:value / POWER(10, decimal_value)
- 在
blockNo
和txnNo
上使用COALESCE
來確保排序資料欄永遠存在,即使 JSON 中遺漏也一樣。
輸出資料欄:BLOCKNO
:用於排序的區塊編號 (如果有的話,從 JSON,否則從中繼資料)。TXNNO
:區塊中的交易編號 (若有的話,來自 JSON,否則來自中繼資料)。KEY
:交易索引鍵 ID。TXNTIMESTAMP
:交易的時戳。ASSETTYPE
:資產類型 (otransaction
)。TRANSACTION_ID
:交易的唯一 ID。FROM_ACCOUNT_ID
:傳送記號的帳戶 ID。TO_ACCOUNT_ID
:已傳送記號的帳戶 ID。TRANSACTION_TYPE
:交易的類型 (例如,轉移、保留、釋出)。AMOUNT
:交易金額,依記號小數位數調整。TRANSACTION_EARMARK
:交易的類別或地標。FROM_ACCOUNT_BALANCE
:交易後傳送方帳戶的餘額,依小數位數調整。TO_ACCOUNT_BALANCE
:交易後接收者帳戶的餘額,依精確度調整。
- 機密 SQL 查詢、參與者銀行:
`CREATE VIEW TRANSACTION_MOD AS SELECT COALESCE(CAST(sub."VALUEJSON".blockNo AS NUMBER), sub."BLOCKNO") AS BLOCKNO, COALESCE(CAST(sub."VALUEJSON".txnNo AS NUMBER), sub."TXNNO") AS TXNNO, sub.key, sub.txntimestamp, sub.valuejson.assetType, sub.valuejson.transaction_id, sub.valuejson.from_account_id, sub.valuejson.to_account_id, sub.valuejson.transaction_type, (TO_NUMBER(sub.quantity) / POWER(10, sub.decimal_value)) as amount, sub.valuejson.category as transaction_earmark, (TO_NUMBER(sub.from_account_balance) / POWER(10, sub.decimal_value)) as from_account_balance, (TO_NUMBER(sub.to_account_balance) / POWER(10, sub.decimal_value)) as to_account_balance from ( SELECT hist.*, pdc.*, CASE WHEN hist."VALUEJSON".from_account_id IS NOT NULL THEN (SELECT DECIMAL_VALUE FROM "ACCOUNTS_MOD" WHERE ACCOUNT_ID = hist."VALUEJSON".from_account_id FETCH FIRST 1 ROW ONLY) WHEN hist."VALUEJSON".to_account_id IS NOT NULL THEN (SELECT DECIMAL_VALUE FROM "ACCOUNTS_MOD" WHERE ACCOUNT_ID = hist."VALUEJSON".to_account_id FETCH FIRST 1 ROW ONLY) ELSE 0 END AS decimal_value, ROW_NUMBER() OVER ( PARTITION BY hist."VALUEJSON".transaction_id ORDER BY hist.TXNTIMESTAMP DESC ) AS rn FROM "<obpInstanceName>_<channelName>_hist" hist LEFT JOIN "<transactionPDCViewName>" pdc ON hist.key = pdc.TRANSACTION_ID WHERE hist."CHAINCODEID" = '<chaincodeName>' AND hist."VALUEJSON".assetType = 'otransaction' AND hist."KEY" NOT LIKE '_obp2pc_staged_%' ) sub where rn = 1`
Data Sources:<obpInstanceName>_<channelName>_hist
:包含所有 JSON 格式交易版本的歷史鏈碼表格。<transactionPDCViewName>
:保留交易層次私人資料的專用資料收集檢視。它會與歷史記錄結合以強化交易記錄。ACCOUNTS_MOD
:用來擷取交易相關帳戶之正確記號小數位數 (decimal_value
) 的檢視。
金鑰邏輯:- 僅篩選下列陳述式為真的資料列。
CHAINCODEID = <chaincodeName>
assetType = 'otransaction'
- 排除暫存的交易 (
KEY NOT LIKE '_obp2pc_staged_%'
)
- 小數比例:根據
from_account_id
或to_account_id
,從ACCOUNTS_MOD
動態擷取decimal_value
。使用value / POWER(10, decimal_value)
將比例套用至amount
、from_account_balance
和to_account_balance
- 記錄選擇:使用以
transaction_id
分割的ROW_NUMBER()
(最新由TXNTIMESTAMP
分割),確保只傳回每個交易的最新版本。 - 資料正規化:即使 JSON 有效負載中遺漏值,
COALESCE
也會套用至blockNo
和txnNo
以確保一致性。
輸出資料欄:BLOCKNO
:用於排序的區塊號碼 (如果有的話,從 JSON,否則從中繼資料)。TXNNO
:區塊中的交易編號 (若有的話,來自 JSON,否則來自中繼資料)。KEY
:交易索引鍵 ID。TXNTIMESTAMP
:交易的時戳。ASSETTYPE
:資產類型 (otransaction
)。TRANSACTION_ID
:交易的唯一 ID。FROM_ACCOUNT_ID
:帳戶 ID 傳送權杖。TO_ACCOUNT_ID
:接收權杖的帳戶 ID。TRANSACTION_TYPE
:交易的類型 (例如,轉移、保留、釋出)。AMOUNT
:交易金額,使用記號小數位數標準化。TRANSACTION_EARMARK
:交易的類別或地標。FROM_ACCOUNT_BALANCE
:傳送方帳戶在交易後的餘額 (精確度調整)。TO_ACCOUNT_BALANCE
:交易後的接收者帳戶餘額 (精確度調整)。
-
ACCOUNTS_TRANSACTION_MOD
- 此檢視會藉由將每個交易與參與帳戶的組織 ID 建立關聯,來延伸交易歷史記錄。它支援燃燒核准、薄荷核准和定期轉移,確保交易同時包含帳戶層級和組織層級的內容。
- 一般 SQL 查詢、TypeScript 及執行:
`create view ACCOUNTS_TRANSACTION_MOD as SELECT DISTINCT TRANSACTION_ID, A.BLOCKNO, FROM_ACCOUNT_ID, TO_ACCOUNT_ID, A.TRANSACTION_EARMARK EARMARK, B.ORG_ID FROM_ORG_ID, B.ORG_ID TO_ORG_ID, TRANSACTION_TYPE, AMOUNT, A.TXNTIMESTAMP CRDATE FROM <transactionViewName> A, <accountsViewName> B WHERE A.FROM_ACCOUNT_ID=B.ACCOUNT_ID AND A.TRANSACTION_TYPE='APPROVE_BURN' UNION SELECT DISTINCT TRANSACTION_ID, A.BLOCKNO, FROM_ACCOUNT_ID, TO_ACCOUNT_ID, A.TRANSACTION_EARMARK EARMARK, C.ORG_ID FROM_ORG_ID, C.ORG_ID TO_ORG_ID, TRANSACTION_TYPE, AMOUNT, A.TXNTIMESTAMP CRDATE FROM <transactionViewName> A, <accountsViewName> C WHERE A.TO_ACCOUNT_ID=C.ACCOUNT_ID AND A.TRANSACTION_TYPE='APPROVE_MINT' UNION SELECT DISTINCT TRANSACTION_ID, A.BLOCKNO, FROM_ACCOUNT_ID, TO_ACCOUNT_ID, A.TRANSACTION_EARMARK EARMARK, B.ORG_ID FROM_ORG_ID, C.ORG_ID TO_ORG_ID, TRANSACTION_TYPE, AMOUNT, A.TXNTIMESTAMP CRDATE FROM <transactionViewName> A, <accountsViewName> B, <accountsViewName> C WHERE A.FROM_ACCOUNT_ID=B.ACCOUNT_ID AND A.TO_ACCOUNT_ID=C.ACCOUNT_ID ORDER BY BLOCKNO DESC`
Data Sources:<transactionViewName> (A)
:提供核心交易詳細資訊,例如 ID、區塊號碼、帳戶、金額和時戳。<accountsViewName> (B, C)
:將帳戶 (ACCOUNT_ID
) 對應至寄件者與接收者的組織 (ORG_ID
)。
關鍵邏輯:檢視是使用UNION
(共三個案例):APPROVE_BURN
- 加入
FROM_ACCOUNT_ID = B.ACCOUNT_ID
。 - 指派
B.ORG_ID
給FROM_ORG_ID
和TO_ORG_ID
。
- 加入
APPROVE_MINT
- 加入
TO_ACCOUNT_ID = C.ACCOUNT_ID
。 - 指派
C.ORG_ID
給FROM_ORG_ID
和TO_ORG_ID
。
- 加入
- 一般轉帳
- 結合
FROM_ACCOUNT_ID = B.ACCOUNT_ID
和TO_ACCOUNT_ID = C.ACCOUNT_ID
。 - 將
B.ORG_ID
指定為FROM_ORG_ID
,並將C.ORG_ID
指定為TO_ORG_ID
。
- 結合
BLOCKNO DESC
排序,以排列最新交易的優先順序。輸出資料欄:TRANSACTION_ID
:交易的唯一 ID。BLOCKNO
:記錄交易的區塊號碼。FROM_ACCOUNT_ID
:寄件者的帳戶 ID。TO_ACCOUNT_ID
:接收者的帳戶 ID。EARMARK
:交易地標類別 (別名TRANSACTION_EARMARK
)。FROM_ORG_ID
:寄件者帳戶的組織 ID (或燒錄時與TO
相同)。TO_ORG_ID
:接收者帳戶的組織 ID (或 mint 的FROM
相同)。TRANSACTION_TYPE
:交易的類型 (APPROVE_BURN
、APPROVE_MINT
或傳輸)。AMOUNT
:交易金額。CRDATE
:交易建立日期 (從TXNTIMESTAMP
)。
- 機密 SQL 查詢、系統擁有者及參與者銀行:
`CREATE VIEW ACCOUNTS_TRANSACTION_MOD AS SELECT DISTINCT TRANSACTION_ID, A.BLOCKNO, FROM_ACCOUNT_ID, TO_ACCOUNT_ID, A.TRANSACTION_EARMARK EARMARK, B.ORG_ID FROM_ORG_ID, B.ORG_ID TO_ORG_ID, TRANSACTION_TYPE, AMOUNT, A.TXNTIMESTAMP CRDATE FROM "<transactionViewName>" A, "<accountsViewName>" B WHERE A.FROM_ACCOUNT_ID=B.ACCOUNT_ID AND A.TO_ACCOUNT_ID IS NULL AND A.TRANSACTION_TYPE != 'CREATE_ACCOUNT' UNION SELECT DISTINCT TRANSACTION_ID, A.BLOCKNO, FROM_ACCOUNT_ID, TO_ACCOUNT_ID, A.TRANSACTION_EARMARK EARMARK, C.ORG_ID FROM_ORG_ID, C.ORG_ID TO_ORG_ID, TRANSACTION_TYPE, AMOUNT, A.TXNTIMESTAMP CRDATE FROM "<transactionViewName>" A, "<accountsViewName>" C WHERE A.TO_ACCOUNT_ID=C.ACCOUNT_ID AND A.FROM_ACCOUNT_ID IS NULL UNION SELECT DISTINCT TRANSACTION_ID, A.BLOCKNO, FROM_ACCOUNT_ID, TO_ACCOUNT_ID, A.TRANSACTION_EARMARK EARMARK, B.ORG_ID FROM_ORG_ID, C.ORG_ID TO_ORG_ID, TRANSACTION_TYPE, AMOUNT, A.TXNTIMESTAMP CRDATE FROM "<transactionViewName>" A, "<accountsViewName>" B, "<accountsViewName>" C WHERE A.FROM_ACCOUNT_ID=B.ACCOUNT_ID AND A.TO_ACCOUNT_ID=C.ACCOUNT_ID ORDER BY BLOCKNO DESC
Data Sources:<transactionViewName> (A)
:提供交易層次資料 (ID、區塊編號、帳戶參考、金額、時間戳記)。<accountsViewName> (B, C)
:提供ACCOUNT_ID
與ORG_ID
之間的對應。
關鍵邏輯:檢視使用UNION
來合併來自三個交易模式的結果:- 僅傳送者的交易 (例如,傳出或類似燒錄的案例)
- 條件:
A.FROM_ACCOUNT_ID = B.ACCOUNT_ID
和A.TO_ACCOUNT_ID IS NULL
。 - 排除
CREATE_ACCOUNT
交易類型。 FROM_ORG_ID
和TO_ORG_ID
都是衍生自寄件者的組織 (B.ORG_ID
)。
- 條件:
- 僅接收者的交易 (例如,傳入或類似 mint 的案例)
- 條件:
A.TO_ACCOUNT_ID = C.ACCOUNT_ID
和A.FROM_ACCOUNT_ID IS NULL
。 FROM_ORG_ID
和TO_ORG_ID
都是衍生自接收者的組織 (C.ORG_ID
)。
- 條件:
- 標準轉帳 (與寄件者及接收者的交易)
- 條件:
A.FROM_ACCOUNT_ID = B.ACCOUNT_ID
和A.TO_ACCOUNT_ID = C.ACCOUNT_ID
。 FROM_ORG_ID
來自接收者的組織 (B.ORG_ID
),TO_ORG_ID
來自接收者的組織 (C.ORG_ID
)。
- 條件:
BLOCKNO
的遞減順序排序,以排列最新交易的優先順序。輸出資料欄:TRANSACTION_ID
:交易的唯一 ID。BLOCKNO
:記錄交易的區塊號碼。FROM_ACCOUNT_ID
:寄件者的帳戶 ID (mint 可以是NULL
)。TO_ACCOUNT_ID
:接收者的帳戶 ID (燒錄時可以是NULL
)。EARMARK
:交易欄位 (別名TRANSACTION_EARMARK
)。FROM_ORG_ID
:寄件者的組織 ID (如果寄件者是NULL
,則與接收者相同)。TO_ORG_ID
:接收者的組織 ID (如果接收者為NULL
,則與傳送者相同)。TRANSACTION_TYPE
:異動的類型 (例如,移轉、薄荷、燒錄等等)。AMOUNT
:交易金額。CRDATE
:交易建立時戳 (TXNTIMESTAMP
)。