永发信息网

oracle的存储过程里怎样调用动态变量

答案:2  悬赏:20  手机版
解决时间 2021-03-01 20:43
oracle的存储过程里怎样调用动态变量
最佳答案
实现思路:
第一步:先定义一个字符串,这个字符串SQL是由动态变量和其他的sql语句成分拼接组成。
第二步:直接执行 execute immediate SQL;
备注:以上方法是oracle提供的动态执行方法语句,直接使用就可以。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

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
全部回答
实现思路: 第一步:先定义一个字符串,这个字符串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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
英蓝国际金融中心东南门我想知道这个在什么地
线路板焊接如何避免漏焊质量问题的出现?
方城县南阳中国移动通信(凤瑞路)地址在什么地
正手攻球(抽球)和反手攻球(抽球)动作要领
李国生,为了爱情舍弃前途,值吗
王坎头社区卫生服务站在什么地方啊,我要过去
如何解压f18模拟器
日昱城(南1门)地址有知道的么?有点事想过去
西前街三号院北门在哪里啊,我有事要去这个地
怎么让l老公
求推荐中外大场面古装电影、电视剧一定要是真
蓝岛大厦停车场怎么样
天才就来.有一只熊掉到一个陷阱里,陷阱深19.6
我们爱心社团即将招新,但是宣传海报我不知道
怎样才能上电视呢 ???
推荐资讯
请问雷萱萱这个名字能打多少分
华佗杀菌古皂多少钱一块
苏州市环球弹簧厂地址在什么地方,想过去办事
如图,圆环中外圆的周长比内圆的周长长1cm,那
乐泰公寓这个地址在什么地方,我要处理点事
打瘦脸针咬肌已经15天了怎么还是无力
功在千秋毛笔字怎么写
一铸铁梁如图所示,已知抗拉的许用应力[σ]
驾照一个周期内分没扣完,下个周期可要交钱把
月牙台在哪里啊,我有事要去这个地方
7.5KW的电机最大能配置多大的风机
飞机上管饭吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?