如何在oracle中获取用户定义的OPERATOR
How to get user defined OPERATORs in oracle
我已经绞尽脑汁一段时间了,但我无法找到在 Toad 或 SQL Developer 中检索运算符定义的方法。
我们的支持应用程序数据库中有一个用户定义的运算符,我可以在 all_objects 字典中看到它,但我无法检索它的定义。
有办法吗?
我已经阅读了 oracle 文档,但我似乎找不到任何关于运算符的信息,除了如何创建运算符。
只需使用 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"
我已经绞尽脑汁一段时间了,但我无法找到在 Toad 或 SQL Developer 中检索运算符定义的方法。
我们的支持应用程序数据库中有一个用户定义的运算符,我可以在 all_objects 字典中看到它,但我无法检索它的定义。
有办法吗?
我已经阅读了 oracle 文档,但我似乎找不到任何关于运算符的信息,除了如何创建运算符。
只需使用 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"