以下内容会产生错误: [错误] ORA-00904(265:19):PL / SQL:ORA-00904:" INP"。" COLUMN_VALUE":无效标识符
MERGE INTO tab_mapping tbl_llclm
USING (
SELECT COLUMN_VALUE as map_id
FROM TABLE (p_llcl_map_array) inp)
ON (inp.COLUMN_VALUE = tbl_llclm.lab_loinc_map_id)
WHEN NOT MATCHED
THEN
INSERT (tab_map_id,
tab_loinc_map_id,
last_updated_by,
last_updated_date)
VALUES (p_llc_id,
inp.map_id,
p_last_updated_by,
SYSDATE);
p_llcl_map_array的类型为num_arr(num_arr是SQL类型的数字表)
答案 0 :(得分:1)
这应该有效。我刚刚将别名inp
移到了外面,并通过COLUMN_VALUE
map_id
MERGE INTO tab_mapping tbl_llclm
USING (
SELECT COLUMN_VALUE as map_id
FROM TABLE (p_llcl_map_array)
) inp
ON (inp.map_id = tbl_llclm.lab_loinc_map_id)
WHEN NOT MATCHED
THEN
INSERT (tab_map_id,
tab_loinc_map_id,
last_updated_by,
last_updated_date)
VALUES (p_llc_id,
inp.map_id,
p_last_updated_by,
SYSDATE);