问题描述
就像您从链接中看到的那样,我已经创建了一个用户定义的运算符,将他绑定到函数fn_contains.fn_contains_no。
我的问题是:
如果我没有创作脚本,有任何方法可以从数据库中准确检索运算符绑定到的函数?
谢谢。
我的问题是:
如果我没有创作脚本,有任何方法可以从数据库中准确检索运算符绑定到的函数?
谢谢。
专家解答
您可以在 * _ opbindings和 * _ oparguments视图中找到运算符使用的函数:
http://docs.oracle.com/database/122/REFRN/ALL_OPBINDINGS.htm#REFRN20149
CREATE OR REPLACE package fn_contains
AS
FUNCTION fn_contains_si(
stringin VARCHAR2, valuein VARCHAR2) RETURN NUMBER;
FUNCTION fn_contains_no(
stringin VARCHAR2, valuein VARCHAR2) RETURN NUMBER;
END fn_contains;
/
CREATE OR REPLACE package body fn_contains
AS
FUNCTION fn_contains_SI(
stringin VARCHAR2, valuein VARCHAR2) RETURN NUMBER IS
BEGIN
IF INSTR(stringin, valuein, 1, 1) = 0 THEN
RETURN 0;
END IF;
RETURN 1;
END fn_contains_SI;
FUNCTION fn_contains_NO(
stringin VARCHAR2, valuein VARCHAR2) RETURN NUMBER IS
BEGIN
IF INSTR(stringin, valuein, 1, 1) = 0 THEN
RETURN 1;
END IF;
RETURN 0;
END fn_contains_NO;
END fn_contains;
/
CREATE OR REPLACE OPERATOR cns
BINDING(VARCHAR2, VARCHAR2) RETURN NUMBER USING fn_contains.fn_contains_no ;
select * from user_opbindings;
OWNER OPERATOR_NAME BINDING# FUNCTION_NAME RETURN_SCHEMA RETURN_TYPE IMPLEMENTATION_TYPE_SCHEMA IMPLEMENTATION_TYPE PROPERTY
CHRIS CNS 1 "FN_CONTAINS"."FN_CONTAINS_NO" NUMBER CHRIS
select * from user_oparguments;
OWNER OPERATOR_NAME BINDING# POSITION ARGUMENT_TYPE
CHRIS CNS 1 2 VARCHAR2
CHRIS CNS 1 1 VARCHAR2 http://docs.oracle.com/database/122/REFRN/ALL_OPBINDINGS.htm#REFRN20149
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




