oracle中导出表结构,产生建表得脚本跟存储参数

合集下载

plsql导出导入表结构、表数据、存储过程等

plsql导出导入表结构、表数据、存储过程等

plsql导出导⼊表结构、表数据、存储过程等导出:⾸先点击 TOOLS,选择 EXPORT TABLES选中你需要导出的表,勾选 “Create tables” 是因为在导⼊的数据库中没有此表如果勾选"Drop tables" ⽽没有勾选 “Create tables” ,⽽数据库中没有此表,会报表和视图不存在Output file 为导出的路径如果你想导的表数据记录很多,就只想导出表结构,你可以在 where clause 后⾯接⼀个否定条件,就可以只导出表结构⽽不导出数据了。

如下是 1=2 ,亲测有效导⼊:(本地装了oracle才可以)⾸先点击 TOOLS,选择 IMPORT TABLES选择刚才导出的⽂件导出即可导出⽤户对象:包括表、存储过程、视图等,要更改表空间名称修改表空间name:1、使⽤oracle⽤户登录执⾏$sqlplus / as sysdba2、执⾏修改表空间命令如下alter tablespace TEST rename to TEST1;注:可连续对多个表空间进⾏重命名3、确认表空间名已经修改select name from v$tablespace;前提:在CMD 命令下导出命令:exp ⽤户名/密码@数据库 owner=⽤户名 file=⽂件存储路径(如:F:\abcd.dmp)测试截图:exp owner=ZM file=F:\abcd.dmp导⼊命令:imp ⽤户名 fromuser=⽤户名 touser=⽤户名 file=d:\cu.dmp ignore=yimp:命令类型:导⼊的数据库登陆(⽤户名/密码@数据库)fromuser:⽂件的指定⽤户touser:指定导⼊到当前登录的数据库某个⽤户file:需要导⼊的数据⽂件ignore:是否忽略创建错误测试截图:imp fromuser=ZM touser=SZZM file=F:\test.dmp ignore=y如果报错:msg.dmp 是由具有dba⾓⾊的⽤户到导出的。

oracle数据库中导出建表的sql

oracle数据库中导出建表的sql
|| To_Char( N_PRINT ) || ', ' || To_Char( N_TYPE ) || ', ' || '0, 0 );'
from b_stattemplate
spool off;
另:
dbms_metadata.get_ddl('TABLE','TAB1','USER1')
三个参数中,第一个指定导出DDL定义的对象类型(此例中为表类型),第二个是对象名(此例中即表名),第三个是对象所在的用户名。.
要自己写程序了,执行一段SQL,让SQL查询结果就是我们想要的SQL脚本:
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)
FROM USER_INDEXES u;
spool off;
c. 获取某个SCHEMA的建全部存储过程的语法
connect brucelau /brucelau;
如下:
select
'INSERT INTO B_STATTEMPLATE ( N_ID,C_NAME, C_KBH, N_PRINT, N_TYPE, N_APP, N_VALID ) '
|| 'Values (' || To_Char(N_ID) ||',''' || C_NAME || ''', ''' || C_KBH || ''', '
select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;

oracle导入导出参数

oracle导入导出参数

oracle导入导出参数摘要:1.Oracle 导入导出参数的概念与作用2.Oracle 导入导出参数的分类3.Oracle 导入导出参数的具体使用方法4.Oracle 导入导出参数的注意事项5.Oracle 导入导出参数的实际应用案例正文:一、Oracle 导入导出参数的概念与作用Oracle 是一款广泛应用于企业级数据管理的关系型数据库管理系统,其强大的数据处理能力深受用户喜爱。

在Oracle 中,导入导出参数是一种用于控制导入导出过程的设置,可以帮助用户更精确地完成数据导入导出操作。

参数可以用于控制数据的传输方式、数据字符集、数据类型等,从而确保数据的准确性和完整性。

二、Oracle 导入导出参数的分类Oracle 导入导出参数主要分为以下几类:1.数据源参数:这类参数主要用于指定数据源的类型、位置、用户名和密码等信息,以便Oracle 能够正确连接到数据源并读取数据。

2.数据传输方式参数:这类参数用于控制数据传输的方式,如批量导入、多线程导入等,以提高数据导入的效率。

3.数据字符集参数:这类参数用于指定数据的字符集,以便Oracle 能够正确识别和处理数据中的字符。

4.数据类型参数:这类参数用于指定数据的类型,以便Oracle 能够将数据正确地插入到目标表中。

5.其他参数:除了上述几类参数之外,还有其他一些参数,如错误处理参数、日志记录参数等,用于控制导入导出过程中的各种设置。

三、Oracle 导入导出参数的具体使用方法在使用Oracle 导入导出参数时,需要按照以下步骤进行操作:1.登录到Oracle 数据库管理系统,并进入SQL*Plus 或SQL Developer 等工具。

2.在工具中,使用"SELECT * FROM v$parameter"语句查询当前所有的参数设置。

3.根据需要,修改相应的参数值。

例如,如果要修改数据源参数,可以使用"ALTER PARAMETER"语句,如:"ALTER PARAMETER dat 源_parameTER = "新值""。

oracle11g数据库导入导出方法教程

oracle11g数据库导入导出方法教程

oracle11g数据库导入导出方法教程oracle11g数据库导入导出:①:传统方式——exp(导出)和(imp)导入:②:数据泵方式——expdp导出和(impdp)导入;③:第三方工具——PL/sql Develpoer;一、什么是数据库导入导出?oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。

数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。

.dmp 格式文件:就是oracle数据的文件格式(比如视频是.mp4 格式,音乐是.mp3 格式);二、二者优缺点描述:1.exp/imp:优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就保证了服务器上数据文件的安全性。

缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。

如果文件超过几个G,大众性能的电脑,至少需要4~5个小时左右。

2.expdp/impdp:优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。

缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。

我们都知道数据库服务器的重要性,所以在上面的操作必须慎重。

所以这种方式一般由专业的程序人员来完成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。

3.PL/sql Develpoer:优点:封装了导入导出命令,无需每次都手动输入命令。

方便快捷,提高效率。

缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。

三、特别强调:目标数据库:数据即将导入的数据库(一般是项目上正式数据库);源数据库:数据导出的数据库(一般是项目上的测试数据库);1.目标数据库要与源数据库有着名称相同的表空间。

Oracle创建用户、表空间、导入导出、命令

Oracle创建用户、表空间、导入导出、命令

Oracle创建用户、表空间、导入导出、命令.txt我很想知道,多少人分开了,还是深爱着。

ゝ自己哭自己笑自己看着自己闹。

你用隐身来躲避我丶我用隐身来成全你!待到一日权在手,杀尽天下负我狗。

//创建临时表空间create temporary tablespace test_temptempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//创建数据表空间create tablespace test_dataloggingdatafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//创建用户并指定表空间create user testserver_user identified by testserver_userdefault tablespace test_datatemporary tablespace test_temp;//给用户授予权限grant connect,resource to testserver_user; (db2:指定所有权限)导入导出命令:Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。

exp命令可以把数据从远程数据库服务器导出到本地的dmp文件, imp命令可以把dmp文件从本地导入到远处的数据库服务器中。

利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

【IT专家】使用plsql将oracle数据库中的数据库结构和数据导出与导入

【IT专家】使用plsql将oracle数据库中的数据库结构和数据导出与导入

本文由我司收集整编,推荐下载,如有疑问,请与我司联系使用plsql 将oracle 数据库中的数据库结构和数据导出与导入2013/03/19 0 ======导出数据1、打开plsql 选择myobject2、工具---》导出用户对象:导出数据结构----表结构等等3、工具---》导出表:可以导出所有数据;======导入数据1、工具---》导入表:1 tools- import tables- SQL Inserts 导入.sql 文件。

2 tools- import talbes- Oracle Import 然后再导入dmp 文件。

一些说明:Tools- Export User Objects 导出的是建表语句(包括存储结构)。

Tools- Export Tables 里面包含三种导出方式,三种方式都能导出表结构以及数据,如下:Oracle ExportSql Insertpl/sql developer 第一种是导出为.dmp 的文件式,.dmp 文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广。

第二种是导出为.sql 文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。

尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下:table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。

第三种是导出为.pde 式的,.pde 为Pl/sql developer 自有的文件式,只能用Pl/sql developer 自己导入导出,不能用编辑器查看。

tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

Oracle创建用户、表空间、导入导出、权限命令

Oracle创建用户、表空间、导入导出、权限命令

//创建临时表空间create temporary tablespace test_temptempfile'E:\oracle\product\10.2.0\oradata\testserver\test_temp01 .dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//创建数据表空间create tablespace test_dataloggingdatafile'E:\oracle\product\10.2.0\oradata\testserver\test_data01. dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//创建用户并指定表空间create user testserver_user identified by testserver_user default tablespace test_datatemporary tablespace test_temp;//给用户授予权限grant connect,resource to testserver_user; (db2:指定所有权限)导入导出命令:Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。

exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。

利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

oracle数据库的备份和导出

oracle数据库的备份和导出

6.设置用户默认表空间:alter user [数据库用户名] default tablespace [表空 间名] 7.导入数据:在数据库命令行界面输入exit,退出数据库命令行界面,然后输 入按照图1-3所示的类似的命令导入数据。
这里解释下命令的各个参数 test/test:第一个test为建立教务系统时建立的数据库用户,第二个test为建立 教务系统时建立的数据库用户的密码,这2个参数根据实际情况来写。 File=/home/test/20160704test.dmp:这个是备份数据库的路径,其中 20160704test.dmp为备份后的文件名,20160704为当前日期,test为建立教务系统 时建立的数据库用户名,备份路径根据每个学校的实际情况来写,但是要注意2 点,如果是Linux操作系统,第一是oracle用户必须拥有这个备份路径的读写权 限,第二备份路径所在分区必须要有足够的空间。

log=/home/test/20160704test.log:这个是备份数据库的时候产生的日志保存 的路径,其中20160704test.log为日志的文件名,20160704为当前日期,test为建 立教务系统时建立的数据库用户名,日志保存路径根据每个学校的实际情况 来写,但是要注意2点,如果是Linux操作系统,第一是oracle用户必须拥有 这个备份路径的读写权限,第二路径所在分区必须要有足够的空间。这个日 志是必须要有的,因为有的时候可能某些原因备份会失败,这个时候必须通 过日志来找原因,所以每次备份完数据库后都必须检查下有没有错误提示。
数据库的备份
• 如果操作系统是Linux操作系统,并且当前登录的用户不是oracle,在 命令行下输入以下命令“su - oracle”,把当前登录用户切换到oracle 用户,如果输入完命令后如图所示

oracle通过dmp文件获取建表,建用户语句

oracle通过dmp文件获取建表,建用户语句

oracle通过dmp⽂件获取建表,建⽤户语句oracle可以通过impdp命令⼯具获取建⽤户和建表的语句。

impdp指定参数sqlfile可以解析dmp⽂件。

数据导出命令⾏:[oracle@node01 ~]$ expdp \' / as sysdba\' directory=dmpdir dumpfile=expdptest.dmp schemas=test logfile=expdptest.log解析导出的dmp⽂件:[oracle@node01 ~]$ impdp \'/ as sysdba\' directory=dmpdir dumpfile=expdptest.dmp sqlfile=expdptest.sql这样就可以查看建⽤户,建表语句:[oracle@node01 ~]$ cat expdptest.sql-- CONNECT SYSALTER SESSION SET EVENTS '10150 TRACE NAME CONTEXT FOREVER, LEVEL 1';ALTER SESSION SET EVENTS '10904 TRACE NAME CONTEXT FOREVER, LEVEL 1';ALTER SESSION SET EVENTS '25475 TRACE NAME CONTEXT FOREVER, LEVEL 1';ALTER SESSION SET EVENTS '10407 TRACE NAME CONTEXT FOREVER, LEVEL 1';ALTER SESSION SET EVENTS '10851 TRACE NAME CONTEXT FOREVER, LEVEL 1';ALTER SESSION SET EVENTS '22830 TRACE NAME CONTEXT FOREVER, LEVEL 192 ';-- new object type path: SCHEMA_EXPORT/USER-- CONNECT SYSTEMCREATE USER "TEST" IDENTIFIED BY VALUES 'S:BF976574B1327B4A16FA8A5646627B09E4CB07FEAF9CCFE4F7806FB73399;48724AE7C369325F'DEFAULT TABLESPACE "TEST"TEMPORARY TABLESPACE "TEMP";-- new object type path: SCHEMA_EXPORT/SYSTEM_GRANTGRANT UNLIMITED TABLESPACE TO "TEST";-- new object type path: SCHEMA_EXPORT/ROLE_GRANTGRANT "CONNECT" TO "TEST";GRANT "RESOURCE" TO "TEST";-- new object type path: SCHEMA_EXPORT/DEFAULT_ROLEALTER USER "TEST" DEFAULT ROLE ALL;-- new object type path: SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA-- CONNECT TESTBEGINsys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','CURRENT_SCHEMA'), export_db_name=>'ORCL', inst_scn=>'1543220'); COMMIT;END;/-- new object type path: SCHEMA_EXPORT/TABLE/TABLE-- CONNECT SYSCREATE TABLE "TEST"."TEST"( "ID" NUMBER(*,0)) SEGMENT CREATION IMMEDIATEPCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "TEST" ;。

oracle如何导出和导入数据库表

oracle如何导出和导入数据库表

oracle如何导出和导⼊数据库表oracle如何将项⽬中的表导出后在导⼊⾃⼰的数据库中,这是⼀个完整的操作,对于数据库备份或在本地查看数据验证数据进场⽤到,⼀般情况下我都⽤dos⿊窗⼝进⾏操作,简单记录下,毕竟好记性不如烂笔头嘛! oracle的imp/exp就相当于oracle数据的还原与备份,利⽤这个功能我们可以构建两个相同的数据库,⼀个⽤于正式的,⼀个⽤户测试,⼀般情况下,我们常⽤的是将服务器的数据导出来,放在本地进⾏测试,以便发现问题并改正。

imp命令可以把本地.dmp⽂件导⼊到对应数据库中,不管是本地还是远程的 exp命令可以把数据从远程服务器中导⼊到本地,以.dmp进⾏保存到本地⽂件夹下 1、oracle如何导出表? 步骤⼀:打开cmd; 步骤⼆:语法: exp ⽤户名/密码@服务名 tables=表名 file=存⼊本地dmp⽬标地址 log=存⼊本地log⽬标地址 owner=要导出的⽤户名 导出表:exp test/test@orcl tables=sys_user file=D:/user.dmp log=D:/user.log 导出数据库:去掉“ tables=表名 “ 就好! exp test/test@orcl file=D:/user.dmp log=D:/user.log 导出该⽤户的数据库: exp test/test@orcl file=D:/user.dmp log=D:/user.log owner=test 运⾏情况:以下是dos窗⼝运⾏情况,在d盘下可以看到user.dmp和user.log两个⽂件,运⾏完成后可以到⽬标地址查看是否存在 2、oracle如何导⼊表到本地数据库? 步骤⼀:打开cmd; 步骤⼆:输⼊:imp ⽤户名/密码 BUFFER=64000 file=数据库表.dmp存放的地址 ignore=y full=y 说明:ignore=y是表⽰忽略创建错误,继续后⾯的操作;full=y表⽰导⼊⽂件中的全部内容,有可能有多个⽤户的内容,如果你链接的⽤户默认使⽤的表空间设置是system,则导⼊⽂件的内容会导到system上。

oracle只导出指定用户下的表结构,不导出数据的方法

oracle只导出指定用户下的表结构,不导出数据的方法

oracle只导出指定用户下的表结构,不导出数据的方法在数据库管理中,有时我们仅需要导出特定用户下的表结构,而不包含数据,以便于在不同数据库之间进行结构迁移或备份。

本文将详细介绍如何使用Oracle数据库的导出工具EXPDP,来实现只导出指定用户下的表结构,而不导出数据的方法。

### Oracle只导出指定用户下的表结构,不导出数据的方法在Oracle数据库中,可以使用数据泵(Data Pump)工具的导出功能(EXPDP)来实现只导出表结构的需求。

以下是详细的步骤:1.**打开终端或命令提示符**- 在Windows环境下打开命令提示符;- 在Linux或Unix环境下打开终端。

2.**运行导出命令**使用以下命令格式来导出指定用户下的表结构:```sqlexpdp "/ as sysdba" directory=dpump_dir1schemas=your_username dumpfile=structure.dmp logfile=structure.log CONTENT=METADATA_ONLY```- `your_username`:替换为你需要导出表结构的用户名。

- `dpump_dir1`:这是数据泵使用的目录名,需要提前在数据库中创建并赋予相应的权限。

- `structure.dmp`:导出的文件名,可以根据需要自定义。

- `structure.log`:日志文件名,记录导出过程中的信息。

- `CONTENT=METADATA_ONLY`:这是关键参数,确保只导出元数据,即表结构,不包含数据。

3.**查看日志文件**导出完成后,查看日志文件`structure.log`,以确认导出过程是否成功。

4.**注意**- 确保执行导出操作的用户具有足够的权限。

- 如果数据库启用了归档模式,确保在导出前备份归档日志,以避免潜在的数据丢失风险。

通过以上步骤,我们可以成功地将指定用户下的表结构导出为.dmp文件,而不包含任何数据。

oracle数据库用户创建、权限分配,以及导入,导出数据

oracle数据库用户创建、权限分配,以及导入,导出数据

下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例,其中:安装目录选为:\oracle,数据库名与数据库SID号都输入:ora9i数据库安装完成后,有两个系统级的用户:1、system 默认密码为:manager2、sys 默认密码为:change_on_install在安装的数据库目录中找到\oracle\product\9.2\bin 中的sqlplus程序,运行:./sqlplus system/manager@ora9i用system用户创建自己的用户、权限;sql语句如下:1、创建用户:create user username identified by pwd default tablespace users Temporary TABLESPACE Temp;2、用户授权grant connect,resource,dba to business;3、提交:commit;如上面所述利用sqlplus以username 用户登陆,专输入:@创建数据库的脚本名称.sql回车,即可创建数据库中的表、视图、存储过程等。

如上面所述利用sqlplus以username 用户登陆,假设有两个数据库 9.0.1 与 9.0.21.导出数据exp system用户/system的密码@服务器名 owner用户名=“oradial ” fi le="oradial.dmp"说明:(1) 如果该命令是在本地执行,则不用指定服务器名(2) owner用户名,通过sys用户的登录所创建的用户名。

同时授予的权限包括connect , dba , resource ,还要创建表空间。

(3) system用户名,owner用户名是9.0.1数据库中的用户2.导入数据imp system用户/system的密码@服务器名 file=oradial.dmp fromuser(用户名)=oradial touser(用户名)=abc说明:(1) 如果该命令是在本地执行,则不用指定服务器名(2) touser用户名,通过sys用户的登录所创建的用户名。

Oracle创建用户、表空间、导入导出、命令

Oracle创建用户、表空间、导入导出、命令

//创建临时表空间create temporary tablespace test_temptempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//创建数据表空间create tablespace test_dataloggingdatafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//创建用户并指定表空间create user testserver_user identified by testserver_userdefault tablespace test_datatemporary tablespace test_temp;//给用户授予权限grant connect,resource to testserver_user; (db2:指定所有权限)导入导出命令:Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。

exp命令可以把数据从远程数据库服务器导出到本地的dmp文件, imp命令可以把dmp文件从本地导入到远处的数据库服务器中。

利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

oracle19c之导入、导出及脚本

oracle19c之导入、导出及脚本

oracle19c之导⼊、导出及脚本 记录⼀下oracle两种常⽤的导⼊导出⽅式:exp、imp;spool、SQL*Loader及其脚本。

⼀、exp与imp导⼊导出 1、exp导出操作exp c##sl/123456 buffer=64000 file=./full.sql full=y --导出整个数据库exp c##sl/123456 buffer=64000 file=./sl.sql owner=c##sl --导出⽤户c##sl下的对象exp c##sl/123456 buffer=64000 file=./book.sql tables=book --导出book表exp c##sl/123456 buffer=64000 file=./book.sql tables=book,book2; --导出book、book2表 2、imp导⼊操作exp c##sl/123456 buffer=64000 file=./book.sql tables=bookdrop table book;imp c##sl/123456 buffer=64000 file=./book.sql tables=book --需要先删除表,再导⼊,否则报错exp c##sl/123456 buffer=64000 file=./book.sql tables=bookimp c##sl/123456 buffer=64000 ignore=y file=./book.sql tables=book --只会导⼊主键不冲突的数据,冲突的忽略exp c##sl/123456 buffer=64000 file=./sl.sql owner=c##slimp c##sl/123456 buffer=64000 ignore=y file=./sl.sql full=y --导⼊sl.sql中的全部⽂件imp c##sl/123456 buffer=64000 ignore=y file=./sl.sql tables=book,book2 --导⼊sl.sql中的表book、与book2 说明:tables指定导⼊或导出的表;full=y表⽰导⼊或导出全部;ignore=y表⽰跳过主键冲突执⾏ ⼆、spool、SQL*Loader导⼊导出 准备表与数据CREATE TABLE book(id varchar2(10) NOT NULL,name varchar2(50) DEFAULT NULL,author varchar2(20) DEFAULT NULL,price decimal(10,0) DEFAULT NULL,update_time date DEFAULT NULL,create_time date DEFAULT NULL,is_deleted varchar2(1) DEFAULT NULL,PRIMARY KEY (id));insert into book values ('1','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1);insert into book values ('2','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1);insert into book values ('3','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1); 1、spool导出操作 创建sql⽂件book_spoolout.sqlset echo offset heading offset feedback offset pagesize 0set linesize 1000spool book.datselect id||','||name||','||author||','||price||','||to_char(update_time,'YYYY-MM-DD hh24:mi:ss')||','||to_char(create_time,'YYYY-MM-DD hh24:mi:ss')||','||is_deleted from book;spool off 登录sqlplus,执⾏@导出⽂件[root@localhost tmp]# sqlplus c##sl/123456SQL> @book_spoolout.sql; 导出数据⽂件book.dat如下:1,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,12,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,13,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,1 说明: b、这⾥登录数据库⽬录与sql⽂件、导出⽂件⽬录⼀致; c、如果导出⽬录没有写权限,会报错“⽆法创建 SPOOL ⽂件 "book.dat"当前未假脱机”,注意赋权; d、要把控制⽂件写⼊⽂件中保存,如果直接复制到sqlplus中执⾏,导出的⽂件中⾸尾⾏含有其他命令或sql语句; 2、SQL*Loader导⼊操作 创建控制⽂件book.ctlload datainfile book.datinto table booktruncatefields terminated by ","(ID,NAME,AUTHOR,PRICE,UPDATE_TIME DATE "YYYY-MM-DD HH24:MI:SS",CREATE_TIME DATE "YYYY-MM-DD HH24:MI:SS",IS_DELETED) 执⾏导⼊命令,将上⾯的book.dat导⼊数据库sqlldr userid=c##sl/123456 control=book.ctl data=book.dat 注意: a、这⾥的控制⽂件与数据⽂件在同⼀⽬录下 b、truncate是删除原表数据,还有insert、append、replace等 c、fields terminated by是字段分隔符 三、脚本 可以看到spool、sql loader的导⼊导出还是挺复杂的,下⾯整理出通⽤性更强的脚本 1、导出 准备表与数据CREATE TABLE music(id varchar2(10) NOT NULL,name varchar2(50) DEFAULT NULL,author varchar2(20) DEFAULT NULL,price decimal(10,2) DEFAULT NULL,update_time varchar2(19) DEFAULT NULL,create_time varchar2(19) DEFAULT NULL,is_deleted varchar2(1) DEFAULT NULL,PRIMARY KEY (id));insert into music values ('1','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1');insert into music values ('2','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1');insert into music values ('3','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1'); 创建脚本oddpe#!/bin/shif [ $# -lt 5 ];thenecho "param error: please reference example:"echo "oddp music ./music.dat c##sl/123456 -f'|!?|' -r'@#$'"exit 1fiTABLE=${1}DATAFILE=${2}USERPASS=${3}shiftshiftshiftwhile getopts "f:r:" argdof) FIELD=${OPTARG};;r) ROW=${OPTARG};;?) ROW=1;;esacdoneDATAPATH=`dirname ${DATAFILE}`DATANAME=`basename ${DATAFILE}`SPOOLOUTSQL=${DATAPATH}/${TABLE}_spoolout.sqlTODAY=`date '+%Y%m%d'`LOGFILE=${DATAPATH}/${TABLE}_unload_${TODAY}.logsqlplus -S ${USERPASS} <<eof >>${LOGFILE}set serveroutput on verify off trimspool on timing off feedback offset numwidth 50 pagesize 0 linesize 1000spool ${SPOOLOUTSQL}declarev_colcount number :=0;begindbms_output.put_line('select');for col in (select column_namefrom user_tab_columnswhere table_name = upper('${TABLE}')order by column_id)loopif v_colcount = 0thendbms_output.put(chr(9) || col.column_name);elsedbms_output.put_line(chr(9) || '||' || '''${FIELD}''' || '||' );dbms_output.put(chr(9) || col.column_name);end if;v_colcount :=v_colcount + 1;end loop;dbms_output.put('||' || '''${ROW}''');dbms_output.new_line;dbms_output.put_line('from ' || '${TABLE};');end;/spool offexiteofecho "`date +%T`: 开始导出数据!" 2>&1|tee -a ${LOGFILE}sqlplus -S ${USERPASS} <<eofset echo off heading on feedback off pagesize 0 linesize 1000set termout off trimspool on numwidth 24 arraysize 1000 verify off newpage 0 space 0spool ${DATAFILE}.tmp@${SPOOLOUTSQL}spool offexiteofif [ $? -ne 0 ];thenecho "`date +%T`: 导出${TABLE}失败!" 2>&1|tee -a ${LOGFILE}exit -1else#去除中间空⾏grep . ${DATAFILE}.tmp>${DATAFILE}rm -f ${DATAFILE}.tmpecho "`date +%T`: 导出${TABLE}完毕!" 2>&1|tee -a ${LOGFILE}exit 0fi 执⾏⽰例,导出music表的数据到music.dat⽂件,以|!?|分隔字段,以@#$结束⼀⾏./oddpe music /usr/local/myroom/script/tmp/music.dat c##sl/123456 -f'|!?|' -r'@#$' 2、导⼊ 创建脚本oddpi#!/bin/shif [ $# -lt 5 ];thenecho "param error: please reference example:"echo "oddpi music ./music.dat c##sl/123456 -f'|!?|' -r'@#$'"exit 1fiTABLE=${1}USERPASS=${3}shiftshiftshiftwhile getopts "f:r:" argdocase ${arg} inf) FIELD=${OPTARG};;r) ROW=${OPTARG};;?) ROW=1;;esacdoneDATAPATH=`dirname ${DATAFILE}`DATANAME=`basename ${DATAFILE}`CTLFILE=${DATAPATH}/${TABLE}.ctlTODAY=`date '+%Y%m%d'`LOGFILE=${DATAPATH}/${TABLE}_load_${TODAY}.logecho "`date +%T`: 创建控制⽂件" 2>&1|tee -a ${LOGFILE}sqlplus -S ${USERPASS} <<eof >>${LOGFILE}set serveroutput on verify off trimspool on timing off feedback offset numwidth 50spool ${CTLFILE}declarev_colcount number :=0;begindbms_output.put_line('load data');dbms_output.put_line('infile ${DATANAME} '|| '"str ''${ROW}\n''" ');dbms_output.put_line('into table '||'${TABLE}');dbms_output.put_line('truncate');dbms_output.put_line('fields terminated by '|| '''${FIELD}''');dbms_output.put_line('trailing nullcols');dbms_output.put_line('(');for col in (select column_name,casewhen data_type = 'NUMBER' then column_name || ' "nvl(rtrim(:' || column_name || '),' || '0.00' || ')"' else column_name || ' "nvl(rtrim(:' || column_name || '),' || ''' ''' || ')"'end xfrom user_tab_columnswhere table_name = upper('${TABLE}')order by column_id)loopif v_colcount = 0thendbms_output.put(chr(9) || col.x);elsedbms_output.put_line(',');dbms_output.put(chr(9) || col.x);end if;v_colcount :=v_colcount + 1;end loop;dbms_output.new_line;dbms_output.put_line(')');end;/spool offset feedback oneofecho "`date +%T`: 开始导⼊数据!" 2>&1|tee -a ${LOGFILE}sqlldr userid=${USERPASS} control=${CTLFILE} log=${LOGFILE} data=${DATAFILE} direct=trueif [ $? -ne 0 ];thenecho "`date +%T`: 导⼊${TABLE}失败!" 2>&1|tee -a ${LOGFILE}exit -1elseecho "`date +%T`: 导⼊${TABLE}完毕!" 2>&1|tee -a ${LOGFILE}exit 0fi 执⾏脚本,导⼊数据./oddpi music /usr/local/myroom/script/tmp/music.dat c##sl/123456 -f'|!?|' -r'@#$' 说明:对导⼊脚本中dbms_output.put_line('infile ${DATANAME} '|| '"str ''${ROW}\n''" ');的解析 load data的str属性表⽰数据的换⾏符,⽐如3^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!!2^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!!1^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!! a、"\n"是⾃带的换⾏符,因为数据⼿动换⾏了,所以str后⾯除了指定的换⾏符"!!"还有"\n" b、有些⽂件中⼿动的换⾏符不是"\n"⽽是"\r\n",这时对应语句改为......"str '!!\r\n'"...... c、str后⾯还可以跟X+转成raw类型的字符,下⾯的语句执⾏效果相同。

oracle导出表结构1

oracle导出表结构1

oracle导出表结构1oracle导出表结构1.exp/imp工具在cmd中输入 exp username/password@连接串回车,在进入如下时,输入no,就ok了导出表数据(yes/no):yes> no;补充----------------exp/imp工具;带参数:rows=y ——带数据导出导入;rows=n ——不带数据的导出导入,只移植结构只导出3张表的结构:exp user/pasword@dbServerName owner=user tables=(tb1,tb2,tb3) rows=n file=c:\1.dmp连带数据导出:exp user/pasword@dbServerName owner=user tables=(tb1,tb2,tb3) rows=y file=c:\2.dmpimp user2/pasword@dbServerName2 fromuser=user touser=user2 file=c:\1.dmp或者imp user2/pasword@dbServerName2 fromuser=user touser=user2 file=c:\2.dmp2.进入plsql找到table那个大项,点出来,下边会罗列出许多表右键点中你所需要的那个表名找到DBMS_Metadata然后选项里有ddl弹出来那个窗口就是你的表结构,拷贝出来直接在另一个库里执行就可以啦-----------------------------补充------------------------1)PLSQL里tools下export user objects of按shift批量选择表执行就行了;导出文件格式user_info.sql2)用PL/SQL DEVELOPER 导出表结构:tools->export tables > oralce export export 是导出表结构或表数据和数据(是否选择Rows)user_info.dmptools->export tables >SQL inserts页面,选中create tables选项,where clause 里写入where rownum<1 只导出表结构user_info.sql3方法一:exp userid=scott/tiger owner=scottimp userid=scott/tiger full=y indexfile=scott.sql……more scott.sqlREM CREATE TABLE "SCOTT"."BONUS" ("ENAME" VARCHAR2(10), "JOB"REM VARCHAR2(9), "SAL" NUMBER, "COMM" NUMBER) PCTFREE 10 PCTUSED 40REM INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELISTREM GROUPS 1) TABLESPACE "USERS" LOGGING NOCOMPRESS ;REM ... 0 rowsREM CREATE TABLE "SCOTT"."DEPT" ("DEPTNO" NUMBER(2, 0), "DNAME"REM VARCHAR2(14), "LOC" VARCHAR2(13)) PCTFREE 10 PCTUSED 40 INITRANS 1REM MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1)REM TABLESPACE "USERS" LOGGING NOCOMPRESS ;REM ... 4 rowsREM CREATE TABLE "SCOTT"."DUMMY" ("DUMMY" NUMBER) PCTFREE 10 PCTUSED 40REM INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELISTREM GROUPS 1) TABLESPACE "USERS" LOGGING NOCOMPRESS ;REM ... 1 rowsREM CREATE TABLE "SCOTT"."EMP" ("EMPNO" NUMBER(4, 0) NOT NULL ENABLE,REM "ENAME" VARCHAR2(10), "JOB" VARCHAR2(9), "MGR" NUMBER(4, 0),REM "HIREDATE" DATE, "SAL" NUMBER(7, 2), "COMM" NUMBER(7, 2), "DEPTNO"REM NUMBER(2, 0)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255REM STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1) TABLESPACEREM "USERS" LOGGING NOCOMPRESS ;REM ... 14 rowsREM CREATE TABLE "SCOTT"."SALGRADE" ("GRADE" NUMBER, "LOSAL" NUMBER,REM "HISAL" NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255REM STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS1) TABLESPACEREM "USERS" LOGGING NOCOMPRESS ;REM ... 5 rows…………把前面的REM去了,再去掉最后一行,创建表的DDL就OK了。

oracle导入导出参数

oracle导入导出参数

oracle导入导出参数Oracle导入导出参数详解概述:Oracle数据库是一种关系型数据库管理系统,支持各种数据导入和导出操作。

本文将详细介绍Oracle数据库导入导出的相关参数和用法,帮助读者更好地理解和使用这些功能。

1. expdp/impdp命令Oracle提供了expdp和impdp命令用于导出和导入数据。

expdp命令用于导出数据,impdp命令用于导入数据。

下面将详细介绍这两个命令的常用参数。

2. expdp参数expdp命令的常用参数如下:- userid:指定连接数据库的用户名和密码。

- directory:指定数据导出的目录。

- dumpfile:指定导出数据的文件名。

- logfile:指定导出日志的文件名。

- tables:指定要导出的表名。

- exclude:指定要排除导出的对象。

- compression:指定导出文件是否进行压缩。

- parallel:指定导出操作的并行度。

3. impdp参数impdp命令的常用参数如下:- userid:指定连接数据库的用户名和密码。

- directory:指定数据导入的目录。

- dumpfile:指定导入数据的文件名。

- logfile:指定导入日志的文件名。

- tables:指定要导入的表名。

- remap_schema:指定将导入数据重新映射到的目标用户。

- remap_tablespace:指定将导入数据重新映射到的目标表空间。

- transform:指定导入数据的转换规则。

4. 导出参数实例下面以一个实际的例子来演示如何使用expdp命令导出数据。

例子:expdp system/password@orcl directory=EXPORT_DIR dumpfile=expdp.dmp logfile=expdp.log tables=EMP,DEPT解析:- system/password@orcl:使用用户名system和密码password连接到数据库实例orcl。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

'('||to_char(t1.data_precision)|| ','||to_char(t1.data_scale)||')' )
||decode(t1.NULLABLE,'N',' not null'), 'CHAR','('||to_char(t1.data_length)||')'||
/* 文件名:gen_cre_tab1.sql */
/************************************************************/
set linesize 500
set pagesize 1000
/************************************************************/
/* 功能:自动产生创建表的脚本和相应的存储参数 */
/* 文件名:gen_cre_tab2.sql */
‘ NEXT ‘||TO_CHAR(t3.next_extent) ||’ );’ ||chr(10) ,
',') c
FROM user_tab_columns t1,user_tab_columns t2 ,user_tables t3
select decode(t1.column_id,1,'CREATE TABLE '||t1.table_name|| ' (', ' ') a, t1.column_name b, t1.data_type||decode(t1.data_type,'DATE',
decode(t1.NULLABLE,'N',' not null'),
decode(t1.NULLABLE,'N',' not null'),
'NUMBER',decode(t1.data_precision,null,‘ ‘ ,
'('||to_char(t1.data_precision)|| ','||to_char(t1.data_scale)||')' )
oracle中导出表结构,产生建表得脚本跟存储参数 ----------------------------
/************************************************************/
/* 功能:自动产生创建表的脚本 */
order by t1.table_name,t1.column_id;
---------数据恢复 oracle数据库恢复专家 13352468096 QQ:9417901 网站:http://www.sosdb
t1.data_length,t1.data_scale,t1.column_name,
t1.data_precision
order by t1.table_name,t1.column_id;
例2.从USER_TABLES和USER_TAB_COLUMNS来产生创建表的脚本:
/************************************************************/
set linesize 500
set pagesize 1000
set arraysize 8
set feedback off
set heading off
||decode(t1.NULLABLE,'N',' not null'), 'CHAR','('||to_char(t1.data_length)||')'||
decode(t1.NULLABLE,'N',' not null'))|| decode(t1.column_id,max(t2.column_id),');',',') c FROM user_tab_columns t1,user_tab_columns t2 WHERE t1.table_name = t2.table_name and
set arraysize 8
set feedback off
set heading off
select decode(t1.column_id,1,'CREATE TABLE '||t1.table_name|| ' (', ' ') a,
t1.column_name b,
t1.data_length,t1.data_scale,t1.column_name,
t1.data_precision, t3.tablespace_name ,
-- t3.pct_free , t3.pct_used,
t3.initial_extent ,t3.next_extent
decode(t1.NULLABLE,'N',' not null'))|| decode(t1.column_id,max(t2.column_id),
')'||chr(10)|| 'TABLESPACE ' ||t3.tablespace_name||chr(10)||
-- ‘ PCTFREE ‘||TO_(10)||
-- ‘ PCTUSED ‘||TO_CHAR(t3.pct_used)|| chr(10)||
‘ STORAGE( INITIAL ‘||TO_CHAR(t3.initial_extent)|| chr(10)||
t1.data_type||decode(t1.data_type,'DATE',
decode(t1.NULLABLE,'N',' not null'),
'VARCHAR2','('||to_char(t1.data_length)||')'||
'VARCHAR2','('||to_char(t1.data_length)||')'||
decode(t1.NULLABLE,'N',' not null'), 'NUMBER',decode(t1.data_precision,null,‘ ‘ ,
WHERE t1.table_name = t2.table_name and t2.table_name=t3.table_name and
t1.table_name in (select distinct object_name from user_objects where object_type='TABLE') group by t1.column_id,t1.table_name,t1.data_type,t1.nullable,
t1.table_name in (select distinct object_name from user_objects
where object_type='TABLE')
group by t1.column_id,t1.table_name,t1.data_type,t1.nullable,
相关文档
最新文档