可以啊,你可以在客户端安装一个TOAD或者PowerDesign工具,用这些工具就可以把
这个数据库结构导出来或者在客户端用imp 命令,设置rows=n只导出结构也可以,但不是很直观
这个数据库结构导出来或者在客户端用imp 命令,设置rows=n只导出结构也可以,但不是很直观
解决方案 »
- [在线等]ora-12705:invalid or unknown NLS parameter value specified
- Oracle强制索引
- 高手指点“ 主机身份证明 “和数据库身份证明
- 如何将尾数强制变成整数,如果不是0的,要四舍五入变成0
- to_char(sysdate……)的参数设置
- dbtimezone跟current_timestamp有什么不同?
- 创建实体化视图时报错,请大家帮忙!谢谢!
- 请教java操作Orcale数据库blob字段的问题
- 请问form&reprot bulider是ORACLE9I自带的开发软件吗?它在哪?
- 一个SELECT数据查询的问题,根据条件查询没有结果,这样出错怎么解决?
- 为什么我在用LONG的时候只能插入小于4000B的内容?
- 一个菜鸟的问题(在线等待)
请问具体的操作命令是怎样的?谢谢了
1 借助case工具,如powerdesigner,运用reverse engineering,可以导出数据库结构,并且generate建表的sql脚本
2 自己PL/SQL工具
------------------------------------------------------------------------------------------------------------
-- PACKAGE
------------------------------------------------------------------------------------------------------------
-- This package create two type flat file with the reverse engineer schema DB for a following object:
-- TABLE, VIEW, SYNONYM, PACKAGE, PROCEDURE, INDEX, TYPE, TRIGGER
-- Release Oracle 9.x.x
-- R. Procedure: 1.0
-- Data: 23/10/2002
-- Autor: Calogero Gangi
-- Parameter in input:
-- Output: UTL_FILE_DIR
--
-- Remember your set the parameter UTL_FILE_DIR in the init.ora or spfile.ora
--
-- connect as sys
--
-- Single flat file
-- execute reverse_engineer.single_file();
-- Multi flat file (one for object)
-- execute reverse_engineer.multi_file();
--
--CREATE OR REPLACE package reverse_engineer asprocedure single_file(schema_name in varchar2);
procedure multi_file(schema_name in varchar2);end reverse_engineer;
/CREATE OR REPLACE package body reverse_engineer asprocedure single_file(schema_name in varchar2) as
cursor object(schema_db varchar2) is
select object_name,object_type from dba_objects
where owner=schema_db
and object_type in ('TABLE','VIEW','SYNONYM','PACKAGE','PROCEDURE','INDEX','TYPE','TRIGGER')
order by object_type;rec_obj object%rowtype;
ddl_statement clob;
fileHandler UTL_FILE.FILE_TYPE;
begin
fileHandler := UTL_FILE.FOPEN('/usr/local/utl', 'r_e_'||upper(schema_name)||'.sql', 'a');
for rec_obj in object(upper(schema_name)) loop
begin
ddl_statement:=dbms_metadata.get_ddl(rec_obj.object_type,rec_obj.object_name,schema_name);
ddl_statement:=ddl_statement||'/';
UTL_FILE.PUT_LINE(fileHandler,ddl_statement);
exception
when others then
fileHandler := UTL_FILE.FOPEN('/usr/local/utl', 'r_e_error.log', 'a');
UTL_FILE.PUT_LINE(fileHandler,sqlcode);
UTL_FILE.PUT_LINE(fileHandler,sqlerrm);
UTL_FILE.FCLOSE(fileHandler);
end;
end loop;
UTL_FILE.FCLOSE(fileHandler);
exception
WHEN utl_file.invalid_path THEN
raise_application_error(-20000, 'ERROR: Invalid path for file or path not in INIT.ORA or SPFILE.ORA');
WHEN utl_file.invalid_mode THEN
raise_application_error(-20001, 'ERROR: Invalid mode for open file');
WHEN utl_file.invalid_operation THEN
raise_application_error(-20002, 'ERROR: Invalid operation for file');WHEN others then
UTL_FILE.FCLOSE(fileHandler);
dbms_output.put_line('Error code: '||sqlcode);
dbms_output.put_line('Error description: '||sqlerrm);
end single_file;procedure multi_file(schema_name in varchar2) as
cursor object(schema_db varchar2) is
select object_name,object_type from dba_objects
where owner=schema_db
and object_type in ('TABLE','VIEW','SYNONYM','PACKAGE','PROCEDURE','INDEX','TYPE','TRIGGER')
order by object_type;rec_obj object%rowtype;
ddl_statement clob;
fileHandler UTL_FILE.FILE_TYPE;
begin
for rec_obj in object(upper(schema_name)) loop
fileHandler := UTL_FILE.FOPEN('/usr/local/utl', 'r_e_'||upper(schema_name)||'.'||rec_obj.object_name||'.sql', 'a');
begin
ddl_statement:=dbms_metadata.get_ddl(rec_obj.object_type,rec_obj.object_name,schema_name);
ddl_statement:=ddl_statement||'/';
UTL_FILE.PUT_LINE(fileHandler,ddl_statement);
UTL_FILE.FCLOSE(fileHandler);
exception
when others then
fileHandler := UTL_FILE.FOPEN('/usr/local/utl', 'r_e_error.log', 'a');
UTL_FILE.PUT_LINE(fileHandler,sqlcode);
UTL_FILE.PUT_LINE(fileHandler,sqlerrm);
UTL_FILE.FCLOSE(fileHandler);
end;
end loop;
exception
WHEN utl_file.invalid_path THEN
raise_application_error(-20000, 'ERROR: Invalid path for file or path not in INIT.ORA or SPFILE.ORA');
WHEN utl_file.invalid_mode THEN
raise_application_error(-20001, 'ERROR: Invalid mode for open file');
WHEN utl_file.invalid_operation THEN
raise_application_error(-20002, 'ERROR: Invalid operation for file');
WHEN others then
UTL_FILE.FCLOSE(fileHandler);
dbms_output.put_line('Error code: '||sqlcode);
dbms_output.put_line('Error description: '||sqlerrm);
end multi_file;end reverse_engineer;
/