1、首先要建立一个directory
create or replace directory DIR_DUMP as 'd:/index';
2、执行过程,在路径'd:/index' 下有index.txt文件为导出所有索引的创建语句。
create or replace procedure index_frame
is
type index_name_type is table of user_indexes.index_name%type;
v_index_name index_name_type;
type index_type_type is table of user_indexes.index_type%type;
v_index_type index_type_type;
type table_name_type is table of user_indexes.table_name%type;
v_table_name table_name_type;
type ind_post_cur is ref cursor;
ind_post ind_post_cur;
v_column_name user_ind_columns.COLUMN_NAME%type;
v_column_position user_ind_columns.column_position%type;
frame_name UTL_FILE.file_type;
v_str clob;
s_index_type user_indexes.index_type%type;
status number;
begin
frame_name := UTL_FILE.fopen('DIR_DUMP','index.txt','w');
select index_name,index_type,table_name bulk collect into v_index_name,v_index_type,v_table_name
from user_indexes where index_name not like '%BIN$%';
for i in 1..v_index_name.count loop
status :=1;
if v_index_type(i) = 'NORMAL' then
s_index_type := '';
else s_index_type := v_index_type(i);
end if;
open ind_post for select column_name,column_position from user_ind_columns
where index_name=upper(v_index_name(i))
order by column_position asc;
v_str := 'create '||s_index_type||' index '||v_index_name(i)||' on '||v_table_name(i)||' (';
loop
fetch ind_post into v_column_name,v_column_position;
if ind_post%notfound then
v_str := v_str||') ;';
exit;
elsif status =1 then
v_str := v_str||v_column_name;
status := 0 ;
else
v_str := v_str||','||v_column_name;
end if;
end loop;
UTL_FILE.put_line(frame_name,v_str);
close ind_post;
end loop;
UTL_FILE.fclose_all;
end;
分享到:
相关推荐
在日常运维和开发过程中,数据的导入导出是非常常见的任务,这包括数据迁移、备份、恢复等场景。本工具是一款基于Java编写的桌面应用程序,专为Oracle数据库的导入导出提供便利。 1. **Oracle数据库导入导出的重要...
这个"Oracle导入导出命令bat执行命.rar"文件显然包含了一系列用于自动化这些过程的批处理(BAT)脚本。 首先,让我们来理解一下Oracle的导入导出命令。`expdp`和`impdp`是Oracle Data Pump的命令行工具,用于导出和...
1. **用户模式**:导出特定用户的全部对象,包括表、索引、存储过程、触发器等,以及这些对象中的数据。 2. **表模式**:导出用户所有的表,或者指定的单个或多个表,可以选择是否导出表数据。 3. **整个数据库**:...
2. **选择导出内容**:工具通常会提供选项,让用户选择要导出的数据字典部分,比如表、索引、触发器、存储过程等。 3. **格式化设置**:用户可能还可以定制导出的格式,如字体、颜色、表格样式等,以满足个人喜好或...
在"压缩包子文件的文件名称列表"中提到的"oracle表结构导出器"可能是一个专用的工具,它简化了上述过程,能够直接将Oracle表结构导出为Word格式,无需手动操作。这种工具通常会包含预设的模板和格式,使得输出的文档...
4. **导出选项**:描述可以自定义的导出设置,如是否包含注释、触发器、存储过程等,并可以选择导出的字段格式。 5. **执行导出**:指导用户如何启动导出过程,以及导出后的文件保存位置和文件格式。 6. **错误...
其数据库结构包含表、视图、索引、存储过程、函数、包、触发器等。Oracle还提供了PL/SQL编程语言,用于编写数据库逻辑。 将MySQL和Oracle的数据库结构导出为Word文档,可以帮助数据库管理员和开发人员清晰地了解...
在Oracle数据库中,对象是指数据库表、视图、索引、存储过程等结构化的数据组织方式。 #### 描述:Oracle数据库对象导出脚本,具体SQL语句,方便使用 描述部分简要介绍了该文档的内容:提供了一系列具体的SQL语句...
1. **导出数据字典**:该工具能够将整个数据库的元数据信息以文档形式导出,包括所有表、视图、索引、存储过程、触发器、序列等,这为理解和审计数据库结构提供了极大的便利。 2. **帮助文档**:随工具提供的帮助...
- 使用分区表和索引加速导入导出过程。 - 分批导入以减少锁竞争,提高并发性能。 - 定期清理导出的DMP文件,以节省存储空间。 5. **安全注意事项** - 在进行数据导入导出时,确保操作权限适当,避免数据泄露。 ...
它可能调用了上述提到的DB2和Oracle的命令行工具,以导出表结构、存储过程和表空间信息。用户运行这个文件时,应该会生成相应的DDL和PL/SQL脚本文件。 3. **CODE**: 这可能包含具体的SQL脚本或存储过程代码,用于更...
2. Oracle的DBMS_SCHEDULER:在数据库级别设置定时任务,直接调用PL/SQL存储过程执行导出导入。 五、最佳实践 - 定期备份:根据业务需求,设定合理的备份频率,如每天、每周等。 - 安全存储:导出文件应存储在安全...
- `owner=(system,sys)`:导出指定用户的资源,包括表、存储过程等。 ##### 2.3 导出特定表 ``` exp system/123456@ATSTestDB file=c:\export.dmp tables=(sys.table1, owbsys.table2) ``` - **系统参数**: - ...
- `INDEXES`:选择是否导出索引。 - `RECORDLENGTH`:设置I/O记录长度。 - `RECORD`:用于增量导入的跟踪。 5. **使用Toad工具** Toad是一个强大的Oracle数据库管理工具,提供了图形化的界面,使得数据库操作...
- 完整性:可以导出数据库的完整结构和数据,包括表、视图、索引、存储过程等。 - 选择性:可以选择导出或导入特定的表、模式或整个数据库。 - 分区处理:支持对分区表的导出和导入。 7. **实际操作示例**: - ...
#### 二、Oracle DMP 文件导出过程 在开始导出DMP文件之前,首先需要确保Oracle环境中已安装并配置了Oracle GoldenGate或其他相关工具。接下来,按照以下步骤进行: 1. **创建表空间和用户**: - 表空间:用于存储...
从 Oracle 数据库中导出 SQL 脚本 Oracle 数据库是一个功能强大且复杂的关系数据库管理系统,提供了多种方式来导出数据库对象的创建和申明的 SQL 脚本。下面将详细介绍如何从 Oracle 数据库中导出 SQL 脚本。 获取...
2. **用户方式(U方式)**:导出特定用户的全部对象,如表、视图、存储过程等。 3. **全库方式(Full方式)**:导出整个数据库,包括所有用户、表空间、数据和系统对象。 在命令行中,Export的基本语法如下: ``` exp ...