变量声明中的插入语句有错误PLS-00103(使用case时)
Insert statement in variable declaration has error PLS-00103 (when using case)
我正在使用下面的插入语句来声明 v_text。
我也在 select 语句中使用 case。但是我在案例陈述中收到以下错误。
Error(469,119): PLS-00103: Encountered the symbol "VALUE" when expecting one of the following: * & = - + ; < / > at in is mod remainder not rem <an exponent (**)> <> or != or ~= >= <= <> and or like like2 like4 likec between || member submultiset
v_text := 'INSERT INTO temp_value '||
'(ach_id, language, value, value_ivi, dq_nr, unit, leervalue, gg_id)'||
'SELECT '||p_ach_id||', d.lfd, w.sprache,'||
case when y.zeige_unit = 1 then regexp_replace(w.value,'(\d+\.\d+)',''||w.unit) else
w.value end value,||
'w.value, w.value_ivi, '||i||', w.unit, w.leervalue, w.gg_id '||
' FROM ZUL_GEN_NEU_Zwischenvaluee_value w
Join DV_FORMAT_POS_DATENQ y
ON w.dq_id = y.for_pos_dat_id,'||
' (SELECT /*+ no_merge(v) */ DISTINCT v.lfd'||
' FROM '||
'( '||p_vv_text||') v'||
' JOIN ('||v_def_text||') d '||v_def_where||') d '||
' WHERE w.ach_id = '||p_ach_id||
' AND w.pos_id = '||p_pos_id||;
我没有你所有的变量,但作为一个开始:
v_text := 'INSERT INTO temp_value '||
'(ach_id, language, value, value_ivi, dq_nr, unit, leervalue, gg_id)'||
'SELECT '||p_ach_id||', d.lfd, w.sprache,'||
case when y.zeige_unit = 1 then regexp_replace(w.value,'(\d+\.\d+)',''||w.unit) else
w.value end || -- removed "value,"
'w.value, w.value_ivi, '||i||', w.unit, w.leervalue, w.gg_id '||
' FROM ZUL_GEN_NEU_Zwischenvaluee_value w
Join DV_FORMAT_POS_DATENQ y
ON w.dq_id = y.for_pos_dat_id,'||
' (SELECT /*+ no_merge(v) */ DISTINCT v.lfd'||
' FROM '||
'( '||p_vv_text||') v'||
' JOIN ('||v_def_text||') d '||v_def_where||') d '||
' WHERE w.ach_id = '||p_ach_id||
' AND w.pos_id = '||p_pos_id; -- fixed "||;"
(我将 SO 语言设置为 Lua,因为它似乎可以更好地显示引用的文本。)
我正在使用下面的插入语句来声明 v_text。 我也在 select 语句中使用 case。但是我在案例陈述中收到以下错误。
Error(469,119): PLS-00103: Encountered the symbol "VALUE" when expecting one of the following: * & = - + ; < / > at in is mod remainder not rem <an exponent (**)> <> or != or ~= >= <= <> and or like like2 like4 likec between || member submultiset
v_text := 'INSERT INTO temp_value '||
'(ach_id, language, value, value_ivi, dq_nr, unit, leervalue, gg_id)'||
'SELECT '||p_ach_id||', d.lfd, w.sprache,'||
case when y.zeige_unit = 1 then regexp_replace(w.value,'(\d+\.\d+)',''||w.unit) else
w.value end value,||
'w.value, w.value_ivi, '||i||', w.unit, w.leervalue, w.gg_id '||
' FROM ZUL_GEN_NEU_Zwischenvaluee_value w
Join DV_FORMAT_POS_DATENQ y
ON w.dq_id = y.for_pos_dat_id,'||
' (SELECT /*+ no_merge(v) */ DISTINCT v.lfd'||
' FROM '||
'( '||p_vv_text||') v'||
' JOIN ('||v_def_text||') d '||v_def_where||') d '||
' WHERE w.ach_id = '||p_ach_id||
' AND w.pos_id = '||p_pos_id||;
我没有你所有的变量,但作为一个开始:
v_text := 'INSERT INTO temp_value '||
'(ach_id, language, value, value_ivi, dq_nr, unit, leervalue, gg_id)'||
'SELECT '||p_ach_id||', d.lfd, w.sprache,'||
case when y.zeige_unit = 1 then regexp_replace(w.value,'(\d+\.\d+)',''||w.unit) else
w.value end || -- removed "value,"
'w.value, w.value_ivi, '||i||', w.unit, w.leervalue, w.gg_id '||
' FROM ZUL_GEN_NEU_Zwischenvaluee_value w
Join DV_FORMAT_POS_DATENQ y
ON w.dq_id = y.for_pos_dat_id,'||
' (SELECT /*+ no_merge(v) */ DISTINCT v.lfd'||
' FROM '||
'( '||p_vv_text||') v'||
' JOIN ('||v_def_text||') d '||v_def_where||') d '||
' WHERE w.ach_id = '||p_ach_id||
' AND w.pos_id = '||p_pos_id; -- fixed "||;"
(我将 SO 语言设置为 Lua,因为它似乎可以更好地显示引用的文本。)