Oracle 11gR2では、単純なPL/SQLオブジェクト型を作成しました。平等/不平等のための2つのインスタンスを比較しようとすると、私はPLS-00526: A MAP or ORDER function is required for comparing objects in PL/SQL
エラーを取得し、Oracle documentationは明らかに、私はエラーを再現するために使用ここで「PLS-00526:MAPまたはORDER関数が必要です」オブジェクトが等しいかどうか比較する
If neither a
MAP
nor anORDER
method is specified, then only comparisons for equality or inequality can be performed.
は、PL/SQLコードの例であると述べている場合でも:
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;
/
興味深い。この動作はドキュメントと矛盾しているようです。 –