2014-10-01 26 views
0

下面产生一个错误: [错误] ORA-00904(265:19):PL/SQL:ORA-00904: “INP” “COLUMN_VALUE”:无效的标识符在Oracle中我可以用MERGE语法来引用VARRAY吗?

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类型TABLE的数字)

回答

1

这应该工作。我刚搬到别名inp之外,通过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); 
+0

谢谢Maheswaran提到的COLUMN_VALUE。你看到我忽略了:-) – user2275460 2014-10-01 16:15:41

相关问题