oracle insert into select case when...

insert into ta_rule_expinfo
(EXP_ID, RULE_ID, RULE_VERSION, EXP_SEQ, AREA_CODE, CC_FORM_INSTANCEID)
select case
when length(exp_id) > 12 then
replace(substr(exp_id, 0, 12) || substr(exp_id, 12),
substr(exp_id, 0, 12),
'430100000000')
else
'430100000000_' || exp_id
end exp_id,
case
when length(rule_id) > 12 then
replace(substr(rule_id, 0, 12) || substr(rule_id, 12),
substr(rule_id, 0, 12),
'430100000000')
else
'430100000000_' || rule_id
end rule_id,
RULE_VERSION,
EXP_SEQ,
'430100000000',
CC_FORM_INSTANCEID
from ta_rule_expinfo a
where exists (select rule_id
from ta_rule_baseinfo b
where rule_id = '1'
and b.rule_id = a.rule_id)
帮我分析下,为什么不能插入...

不能插入?那报的什么错呢?

你这后面写了个啥玩意,

  1. INSERT INTO target_table (col1, col2, col3)

  2. SELECT col1,(可以有case判断)

  3. col2,

  4. col3

  5. FROM source_table

  6. WHERE condition;    总之应该是一一对应的