Salesforce
force.com

Salesforce Test.loadDataでORA-20008エラーが出たら

概要

SalesforceでORA-xxxxxが出た時は恐怖のどん底に突き落とされた経験をした人は多いかと思います
ORA-xxxxxシリーズが出たら、まずSalesforceでハンドリングできていないエラーなので、すぐに対処できない
ググっても普通のOracleのエラー対処法しか出てこないし、内容も的外れたものばっかりだったりするので、正直お手上げ状態になることが多いです

そんな中で本日Test.loadDataでSystem.SObjectException: common.exception.SfdcSqlException: ORA-20008が出たので、その対処法を紹介したいと思います

原因

Test.loadDataに読み込ませているCSVデータの参照項目の参照先のデータが投入されていないことが原因
自己参照の場合は、分割してロードすれば問題ないです

data.csv
ID, Name, ref__myself__c
"1", "name1", ""
"2", "name2", "2"

↓(分割)

data1.csv
ID, Name, ref__myself__c
"1", "name1", ""
data2.csv
ID, Name, ref__myself__c
"2", "name2", "2"

※あくまでも一因かもしれない

対処法

  • 事前に参照先のデータを投入する
  • 対象の項目を空白にする(もしくは削除)