如何在oracle中获取用户定义的OPERATOR

How to get user defined OPERATORs in oracle

我已经绞尽脑汁一段时间了,但我无法找到在 Toad 或 SQL Developer 中检索运算符定义的方法。

我们的支持应用程序数据库中有一个用户定义的运算符,我可以在 all_objects 字典中看到它,但我无法检索它的定义。

有办法吗?

我已经阅读了 oracle 文档,但我似乎找不到任何关于运算符的信息,除了如何创建运算符。

Oracle Link 1

Oracle Link 2

只需使用 dbms_metadata 包,特别是 get_ddl() 函数来为运算符提取 DDL,就像使用它为表、视图和其他数据库对象提取 DDL 一样:

这是一个例子:

create or replace function multf(
  arg1 in number,
  arg2 in number 
 ) return number
 is
 begin
   return arg1 * arg2;
 end;
 /

create or replace operator mult
  binding (number, number)
  return number
  using multf;
 /


 select dbms_metadata.get_ddl('OPERATOR', 'MULT')
  from dual

查询结果:

OP_DDL                                                                          
--------------------------------------------------------

  CREATE OR REPLACE OPERATOR "NK"."MULT" BINDING
    (NUMBER, NUMBER) RETURN NUMBER
       USING "MULTF"