gpt4 book ai didi

oracle - 在oracle中删除类型内部的成员方法

转载 作者:行者123 更新时间:2023-12-02 01:16:34 26 4
gpt4 key购买 nike

我创建了一个包含成员函数的类型。我还为该成员函数创建了主体类型。我需要一种方法来删除主体和成员函数。扔下尸体就被处决了。但无法删除成员函数。那么有人可以帮忙吗?

最佳答案

您不能删除它,因为 Type 在您的任何对象定义中的某处使用。请参阅下面的演示:

--创建类型

CREATE OR REPLACE TYPE EXMPL_Type AS OBJECT
(
Team VARCHAR2 (30),
TeamScore NUMBER (1),
MAP MEMBER FUNCTION team_rating
RETURN NUMBER
);
/

--创建类型主体

CREATE OR REPLACE TYPE BODY EXMPL_Type
AS
MAP MEMBER FUNCTION team_rating
RETURN NUMBER
IS
avg_score NUMBER;
BEGIN
SELECT AVG (TeamScore)
INTO avg_score
FROM Team_Table ;

RETURN avg_score;
END;
END;
/

-- 创建一个类型的表

CREATE TABLE ABC OF EXMPL_TYPE;

--掉落式主体。已被删除

DROP TYPE BODY EXMPL_Type;

--出现错误

DROP TYPE EXMPL_Type;

错误:

SQL>     DROP TYPE EXMPL_Type;
DROP TYPE EXMPL_Type
*
ERROR at line 1:
ORA-02303: cannot drop or replace a type with type or table dependents

因此您需要先删除依赖对象。就我而言,它是我创建的。因此我先放弃它;

SQL>  DROP TABLE ABC;

Table dropped.

SQL> DROP TYPE EXMPL_Type;

Type dropped.

您可以在DBA_DEPENDENCIES表中找到依赖对象:见下文:

SELECT REFERENCED_NAME, REFERENCED_TYPE
FROM DBA_DEPENDENCIES
WHERE name = 'EXMPL_TYPE';

关于oracle - 在oracle中删除类型内部的成员方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46785324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com