@ ajmalmhd04 回答 へのコメントからの抜粋
はい、ドキュメント ユーザー定義の演算子、特にこの部分を定義する方法が少し混乱しています:
残念ながら、これは、(ほとんどの場合)組み込み演算子を使用できるが、同じ方法では使用できないユーザー定義演算子を使用できることを意味します( operator1 OPERATOR operator2
たとえば)<
などの組み込み演算子を使用します または
=
。ユーザー定義の演算子は、あまり詳しく見ていない場合でも、DMLステートメント( select
)でのみ使用できることを除いて、関数を呼び出す別の方法です。 、挿入
など)。 PL / SQLで直接使用することはできず、DMLを介してのみ使用できます。したがって、PL / SQLでこのようなものを使用すると、 PLS-00548:演算子の使用が無効になります。
if operator(<<arguments>>) = 1 then
-- something
end if;
アプリケーション固有のサーバーベースの拡張機能(データカートリッジ)、たとえばインデックスタイプの開発に関与していない場合、演算子を作成して使用することの利点は、私には個人的には見えません。演算子が使えるし、関数が使えない状況は考えられません。ただし、反対は真実ではありません。オーバーロードされた関数として使用する方法として、複数のバインディングを持つオペレーターの機能を見ることができます。しかし、その一方で、パッケージでも同じことを簡単に実現できます。