0

次のエラーが生成されます: [エラー] 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 型 TABLE です)

4

1 に答える 1

1

これはうまくいくはずです。エイリアスinpを外部に移動し、 COLUMN_VALUEbyを参照しました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);
于 2014-10-01T14:09:34.280 に答える