Oracle 中的operator操作简单来讲就类似与C++或JAVA等语言中的函数重载
如
创建两个测试函数
CREATE OR REPLACE FUNCTION Op_test1(a IN INTEGER,b IN INTEGER)
RETURN INTEGER AS
BEGIN
RETURN (a+b);
END;
CREATE OR REPLACE FUNCTION Op_test2(a IN VARCHAR2,b IN VARCHAR2)
RETURN VARCHAR2 AS
BEGIN
RETURN (a||b);
END;
创建一个operator,绑定上述两个函数
调用的函数可以是 :
【Standalone functions】
【Package functions】
【User-defined type member methods】
CREATE OR REPLACE OPERATOR optest BINDING
(INTEGER,INTEGER) RETURN INTEGER
USING Op_test1,
(VARCHAR2,VARCHAR2) RETURN VARCHAR2
USING Op_test2;
调用测试
operator的调用可以是:
【the select list of a SELECT command】
【the condition of a WHERE clause】
【the ORDER BY and GROUP BY clauses】
SQL> SELECT optest(1,2) FROM dual;
OPTEST(1,2)
--------------------------------
3
SQL> SELECT optest('a','b') FROM dual;
OPTEST('A','B')
--------------------------------
ab
SQL>