다음 함수는 실패합니다. 다음 함수는 정상적으로 컴파일됩니다. 그러나 익명 PL/SQL 코드에서 함수를 호출하면 호출이 실패합니다. 누구나 제안 할 수 있습니까? 일치하지 않는 (새) 데이터를 삽입하고 일치하는 데이터 (기존)를 업데이트하려고합니다.ORA-00904 : "TEMP_DATA". "P_LNAME": 유효하지 않은 식별자
Function Fn_Insert_Data_Using_Merge (p_Id in Number,
p_fname in varchar2,
p_mname in varchar2,
p_lname in varchar2,
p_birth_date in date) Return Boolean
Is
Begin
Dbms_Output.put_line ('Inside the function Fn_Insert_Data_Using_Merge ...');
Merge Into test_employee te
using (select distinct p_Id, p_fname, p_mname, p_lname, p_birth_date
from test_employee) temp_data
on (te.first_name = temp_data.p_fname and
te.middle_name = temp_data.p_mname and
te.last_name = temp_data.p_lname)
when matched then
update
set first_name = p_fname,
middle_name = p_mname,
last_name = p_lname,
run_status = 'Updated'
when not matched then
insert (id, first_name, middle_name, last_name, birth_date, run_status)
values
(p_id, p_fname, p_mname, p_lname, p_birth_date, 'Inserted');
Dbms_Output.put_line ('Returning successfully from the function Fn_Insert_Data_Using_Merge ...');
Return True;
Exception
When Dup_Val_On_Index Then
Dbms_Output.put_line ('The name already exists...Cannot insert again ..');
Return False;
When Others Then
Dbms_Output.put_line ('Facing some critical error : ' || SQLERRM);
Return False;
End Fn_Insert_Data_Using_Merge;
오류의 줄 번호는 무엇입니까? – Rachcha
(te.first_name = temp_data.p_fname 및 te.middle_name = temp_data.p_mname 및 te.last_name = temp_data.p_lname) –
ORA-06512 : "FC113EXT.PKG_TEST"줄 101에 ORA-00904 : "TEMP_DATA". " P_LNAME ": 유효하지 않은 식별자 줄 101은"병합으로 test_employee te "문입니다. –