當前位置:成語大全網 - 新華字典 - oracle的存儲過程裏怎樣調用動態變量

oracle的存儲過程裏怎樣調用動態變量

實現思路:

第壹步:先定義壹個字符串,這個字符串SQL是由動態變量和其他的sql語句成分拼接組成。

第二步:直接執行?execute immediate SQL;

備註:以上方法是oracle提供的動態執行方法語句,直接使用就可以。

?VAR_DYNAMIC_SQL?:=?'INSERT?INTO?RP_COMFIRMED_EVENT_DETAIL(

EVENT_ID,--ID

TRANS_TIME,--交易時間

TRANS_TYPE,--交易類型

TRANS_PROVINCE,--開戶省份

CCE_CSTNO,--客戶號

CCE_CERTTYPE,--證件類型

CCE_CERTNO,--證件號

CCE_AMT,--交易金額

CCE_RISK_SCORE,--不處理的風險分值

CCE_PAYEE_ACC,--付款人賬號

CCE_PAYEE_NAME,--付款人姓名

CCE_REC_NODE,--收款人開戶行

CCE_REC_ACC,--收款人賬號

CCE_REC_NAME,--收款人姓名

RULE_NAME,--規則名稱

CCE_RULE_NOTE,--規則描述

SCORE_RANGE--處理後的風險分值

)select

EVENT_ID,

SYS_CREATION_DATE,

GET_NAME_BY_CODE(GET_TOTAL_EVENT_TYPE(T1.EVENT_TYPE,T1.USER_DEFINED_EVENT_TYPE),''eventType'')?AS?TRANS_TYPE,

--?get_province(IP_COUNTRY,IP_CITY)?AS?CCE_TRANSTYPE,

get_vale_from_cd_p('||get_vale_from_cd1('13','5')||'),--開戶省份為自定義字段

USER_ID,

'||get_vale_from_cd1('4','4')||',--證件類型為自定義字段

'||get_vale_from_cd1('7','4')||',--證件號為自定義字段?要轉換成動態SQL

GET_AMT_BY_CURRENCY(AMOUNT_ORIGINAL,AMOUNT_CURRENCY),--通過匯率和幣種轉換

RISK_SCORE,

USER_ACCT_NUMBER,

'||get_vale_from_cd_g1(get_vale_from_cd_al)||',--付款人姓名

'||get_vale_from_cd1('11','5')||',--收款人開戶行?自定義字段?需轉換成動態SQL

EXT_ACCT_NUMBER,

EXT_ACCT_OWNER_NAME,

NVL(POLICY_RULE_ID,''FALLBACK_RULE'')?AS?RULE_NAME,

SUBSTR(GET_RULE_ORDER_ID(ORG_ID,POLICY_RULE_ID),INSTR(GET_RULE_ORDER_ID(ORG_ID,POLICY_RULE_ID),''-'')+1),--描述

GET_SCORE_RANGE(RISK_SCORE)?AS?RISK_SCORE_RANGE

FROM?EVENT_LOG_REALTIME?T1

))';

execute?immediate?VAR_DYNAMIC_SQL;