首页>软件资讯>常见问题

常见问题

怎么使用Toad for Oracle Pro DB Admin 更改和删除数据库对象

发布时间:2022-10-31 14:55:48人气:772

用于开发数据库对象类型和对象表的对象模型为 Oracle 数据库带来了面向对象的数据存储。 我们讨论了创建对象类型,该类型由对象规范和对象主体组成。 然后,我们从对象类型创建了一个对象表。 在本文中,我们将讨论更改对象类型以及怎么从数据库中删除对象类型。 

如何使用Toad for Oracle Pro DB Admin 更改和删除数据库对象.png

为什么要更改或删除数据库对象?

如果组织的数据需求发生变化,则可能需要修改数据库对象。删除数据库对象本质上会删除它,而更改数据库对象则允许DBA和开发人员添加或删除成员属性和方法。作为更改数据库对象的结果,它会更改类型的规范。


Oracle数据库提供ALTER TYPE语句来更改数据库对象类型。请注意,当对象类型的规范更改时,必须重新编译它。如果更新了对象类型的主体,则还必须重新编译该类型的主体。


我们将讨论如何处理这两种情况。


如何更改数据库对象

首先,将名为edition的属性添加到我们在第一篇文章中创建的对象类型catalog_type中。ADD ATTRIBUTE子句用于添加属性。新属性必须是唯一的,因为它的名称不能与现有属性相同,甚至不能与方法名称相同。新属性将添加到属性列表的末尾。如果存在任何从属数据库对象类型和对象表,则可以使用CASCADE子句将对对象类型的更改传播到这些从属对象类型和表。由于我们确实有一个依赖对象表,我们将使用下面的ALTER TYPE语句添加一个属性。


更改类型CATALOG_TYPE


添加属性(edition VARCHAR2(20)) CASCADE;


将ALTER TYPE语句复制到Quest®Toad®for Oracle的编辑器中,然后单击Execute Script,如图1所示。

如何使用Toad for Oracle Pro DB Admin 更改和删除数据库对象.png

如图2所示的Output选项卡输出所示,对象被更改。

Output选项卡输出对象.png

在Schema Browser中,新属性EDITION如图3所示。Schema浏览器可能需要刷新,例如关闭并重新打开。

新属性EDITION.png

数据库对象类型的主体不能用ALTER type语句更改,应该单独更改,我们将在下面讨论。在模式浏览器中,右键单击CATALOG_TYPE类型并选择编辑器,如图4所示。

CATALOG_TYPE类型.png

在get_details过程中,在DBMS_OUTPUT中添加edition属性。PUT_LINE语句,如图5所示。单击ExecuteScript运行修改后的脚本。

DBMS_OUTPUT中添加edition属性.png

如输出(图6)所示,对象类型的主体发生了变化。

输出对象.png

我们修改了数据库对象类型的规范和主体。要验证新类型和主体是什么,请在模式浏览器中选择相应的选项卡。Spec选项卡(图7)显示了更改后的规范。ALTER TYPE语句已添加到规范中,原始的CREATE TYPE声明不会直接更改。

ALTER TYPE语句添加到规范中.png

对象类型的主体显示在body选项卡中(图8)。

body选项卡.png

更改数据库对象类型的规范和正文后,使用带有compile子句的ALTER type语句再次编译规范和正文。以下语句编译catalog_type类型的规范。


ALTER TYPE catalog_TYPE编译器规范;


以下语句编译catalog_type主体的主体。


ALTER TYPE catalog_TYPE编译器主体;


如果只需要再次编译规范或正文,则前面的语句很有用。因为我们修改了规范和正文,所以我们可以使用以下语句来编译规范和正文。


ALTER TYPE catalog_TYPE编译器;


将语句复制到Toad for Oracle中的编辑器中,然后单击Execute Script(图9)。

Execute Script工具.png

我们没有考虑数据库对象类型catalog_type具有依赖对象表。为了能够使用COMPILE选项更改类型,该类型不能有任何依赖类型或对象表。生成ORA-02311错误,如图10所示。

ORA-02311错误.png

输出选项卡中也会输出ORA-02311错误。


我们需要删除对象表才能编译更改后的对象类型。在SchemaBrowser中选择Tables,右键单击CATALOG_TYPE_T对象表并选择Drop(图11)。

SchemaBrowser中选择Tables键.png

在“确认放置表格”对话框中单击“确定”。


对象表将被删除,如模式浏览器中未列出表所示。再次运行带有COMPILE选项的ALTER TYPE语句。


对象类型会根据“输出”选项卡中的消息进行更改。


更改后的对象类型CATALOG_type中的属性和方法列在“模式浏览器”的“属性和方法”选项卡中(图12)。

CATALOG_type属性和方法.png

如何从新的数据库对象类型创建对象表


因为我们删除了与对象类型关联的对象表,所以我们应该重新创建它。右键单击模式浏览器中的CATALOG_TYPE对象类型,然后选择Create>ObjectTable(图13)。

CATALOG_TYPE对象类型.png

Click on OK in the Information dialog that is displayed. An object table CATALOG_TYPE_T gets created as shown in Schema Browser (Figure 14).

CATALOG_TYPE_T工具栏.png

与更改对象类型之前相比,对象表有一个名为EDITION的附加列(图15)。

对象表.png

对象表最初没有数据,如SchemaBrowser中的data选项卡(图16)所示。

SchemaBrowser中的data选项卡.png

下面的PL/SQL脚本将数据添加到对象表中,还查询该表以获取并列出添加的数据。


catalog CATALOG_TYPE;


BEGIN


INSERT INTO CATALOG_TYPE_T VALUES (CATALOG_TYPE(1, 'Oracle Magazine', 'Oracle Publishing','Jan/Feb 2021'));


INSERT INTO CATALOG_TYPE_T VALUES (CATALOG_TYPE(2, 'Java Magazine', 'Oracle Publishing','Jan/Feb 2021'));


SELECT VALUE(c) INTO catalog FROM CATALOG_TYPE_T c WHERE c.id = 2;


catalog.get_details();


END;


将脚本复制到编辑器,然后单击执行脚本。PL/SQL过程如输出所示(图17)。

PL/SQL.png

DBMS输出选项卡(图18)显示了PL/SQL脚本中的Select语句的输出。

DBMS输出选项卡显示结果.png

如何删除数据库对象

要删除对象类型,请右键单击模式浏览器中的对象类型,然后选择图19中的catalog_type对象类型所示。

19.png

确认的Drop类型对话框提示是否应使用强制选项删除对象类型。如果使用了强制选项,则任何因类型和表格也会被删除。选择不要使用强制选项(图20),然后单击确定。

20.png

错误消息对话框(图21)显示ORA-02303错误,表明无法删除具有依赖关系的类型。

21.png

要删除对象表,请在“模式浏览器”中的CATALOG_TYPE_T表上单击鼠标右键,然后选择“删除”。


在Confirm Drop Table提示符中单击OK。删除依赖对象表后,如果不存在其他依赖项,则可以删除对象类型。在模式浏览器中的对象类型CATALOG_type上单击鼠标右键,然后再次选择“拖放”。


将显示“确认放置类型”对话框。再次选择Do Not Use Force Option并单击OK(参见图24)。对象类型CATALOG_type被删除,并且不会在Schema Browser>Types中列出(图22)。

22.png

在这篇文章中,我们讨论了创建对象类型,从对象类型创建对象表,更改对象类型并将对象类型删除 - 所有to toad for toad for Oracle for Oracle Pro带有DB Admin模块。oracle的DBA版本已预装DB管理模块。



上一条:怎么在 Toad for Oracle Pro DB Admin 中安排批处理作业

下一条:使用 Toad 生成 SQL 查询的提示