Oracle 11gR2에서 간단한 PL/SQL 오브젝트 유형을 생성했습니다.오브젝트를 비교할 때 "PLS-00526 : MAP 또는 ORDER 함수가 필요함"
create or replace type point_t is object (x number, y number);
/
declare
p1 point_t := point_t(1, 2);
p2 point_t := point_t(1, 2);
p3 point_t := point_t(2, 1);
begin
dbms_output.put_line('p1 = p1 ' || case when p1 = p1 then 'OK' else 'FAIL' end);
dbms_output.put_line('p2 = p1 ' || case when p2 = p1 then 'OK' else 'FAIL' end);
dbms_output.put_line('p3 <> p1 ' || case when p3 <> p1 then 'OK' else 'FAIL' end);
end;
/
: 평등/불평등에 대한 두 인스턴스를 비교하려고 할 때, 나는
Oracle documentation 명확하게
여기
If neither a
MAP
nor anORDER
method is specified, then only comparisons for equality or inequality can be performed.
내가 오류를 재현하는 데 사용되는 PL/SQL 코드의 예입니다한다고하더라도 PLS-00526: A MAP or ORDER function is required for comparing objects in PL/SQL
오류
흥미 롭습니다. 이 동작은 문서와 모순되는 것 같습니다. –