如何在 toad for oracle 中获取存储过程、视图、函数、触发器的脚本?
10 回答
一般来说,您应该使用dbms_metadata
来检索 DDL 语句。例如。
select dbms_metadata.get_ddl('VIEW', 'V_MYVIEW') from dual;
这当然可以包含在对数据字典的查询中,例如。
select dbms_metadata.get_ddl(object_type, object_name)
from user_objects
where object_type in ('VIEW', 'PROCEDURE', 'FUNCTION', 'TRIGGER');
在 Toad 菜单中,选择数据库 -> 模式浏览器。使用出现的选项卡在视图、过程、表、触发器、函数之间导航...
Toad 有几种方法可以做到这一点。您只需双击模式浏览器中的任何代码对象,就会打开一个编辑器,向您显示该对象的创建 DDL。或者只选择模式浏览器左侧的对象,然后选择右侧的脚本选项卡(如果您没有看到脚本选项卡,请检查您的选项)。
但如果您想查看大量对象的 DDL,请在模式浏览器中选择所有对象,或在“对象搜索”窗口中搜索它们。然后右键单击并选择另存为脚本。此外,我认为有一个 Extract DDL 工具可以做基本相同的事情,但我可能正在考虑 SQL Navigator。还有一种方法可以将整个模式导出为创建脚本。但是,其中一些功能可能取决于您的许可级别。
顺便说一句,这不是编程问题。
如果我们使用dba_source表,它将为脚本提供过程函数和触发器,我们必须使用SELECT TEXT FROM dba_source WHERE TYPE = 'Procedure';
对不起,我遇到了这个线程,试图解决 PL/SQL 中的问题。这里的信息实际上帮助了我,我认为它可能会帮助其他人。
在 PL SQL developer 中,右键单击视图,底部有一个选项 DBMS_METADATA。它有一个弹出按钮,您可以在其中选择 DDL。
在我当前的客户处,我得到一个 ORA-31603。在模式“schemaName”中找不到“VIEW”类型的对象“objname”
这是一个权限问题,技术上可以解决。您的组织是否愿意让您完成您的工作是您必须与他们一起处理的问题。
实际上,如果您进入模式浏览器,您可以右键单击任何对象(或多个对象)并将其保存为脚本。
在查询中尝试 Ctrl+LeftMouseClick 对象名称(函数表视图,...)
在 toad 中,尝试Ctrl+left mouse click查询中的对象名称(函数表视图...)。
您可以查询ALL_SOURCE
视图以获取所需的数据。例如:
select owner, name, type, line, text from all_source
where name like upper('%database_name%')
order by owner, name, type, line;
该type
列可能具有以下之一:FUNCTION
, JAVA SOURCE
, PACKAGE
, PACKAGE BODY
, PROCEDURE
, TRIGGER
, TYPE
, TYPE BODY
.
而且,如果您只想要架构中可以使用的那些USER_SOURCE
(那里没有owner
列)。例如:
SELECT * FROM user_source WHERE line = 1;
选择所有存储过程 单击鼠标右键 选择 Send To Next 选择 Editor to script 使用 .sql 保存文件 exten DONE