Oracle数据库的导入导出
Oracle数据库的导入导出 作者:赵磊 博客:http://elf8848.iteye.com 一、背景介绍 9i,10g,11g 支持Export 与 Import工具,以后的版本将不在支持。建议改用数据泵,数据泵是Export 与 Import工具加强。 Export 与 Import的操作是针对*.dmp文件的,是oracle专
Oracle数据库的导入导出
作者:赵磊
博客:http://elf8848.iteye.com
一、背景介绍
9i,10g,11g 支持Export 与 Import工具,以后的版本将不在支持。建议改用数据泵,数据泵是Export 与 Import工具加强。
Export 与 Import的操作是针对*.dmp文件的,是oracle专有的二进制格式。适合从oracle导入到oracle。
Export 与 Import对于大数据量(上G) 的导入导出已不适合。
SQL Loader这种导入工具是针对文本文件的。适合从文本文件导入到oracle。是执行insert语句的插入原理
Direct Load工具,直接加载,是从oracle块对oracle块的导数据,速度很多,适合从oracle导入到oracle。
二、使用Export 与 Import工具 对数据导入导出
工具在oracle bin 目录下的 exp.exe , imp.exe 这两个工具
可在客户端或服务端运行
2.1、导出*.dmp文件
2.1.1 exp的四种模式:
1、表模式,用于导出某张表。
2、用户模式,用于导出某用户的Schema。
3、表空间模式,用于导出表空间。表空间的是由数据文件组成的,把数据文件从当前库copy到目标库,在用exp工具从当前库导出这个表空间的字典信息再导入到目标库,分两步走。限制较多。
4、数据库模式。用于导出整个数据库,不适合大数据量。
2.1.2 导出例子
导出1--用户模式
exp 用户名/密码@网络服务名 file=d:/oralce_bak_20101001.dmp owner=用户名 log=d:/exp.log direct=y
file:导出的*.dmp文件输出到指定目录
owner:导出哪个用户的Schema
log:日志文件输了到指定目录 (可选)
direct:y表示直接导出 (可选) 速度比一般导出快一倍以上,默认n
rows:y表示同时导出数据 (可选),默认值y,n表示只导表结构
导出2--表模式
exp 用户名/密码@网络服务名 file=20101001.dmp tables=表名1,表名2 rows=y log=exp.log
file:导出的*.dmp文件输出到当前目录
tables:指定导出的表名,可以是多个,用逗号分隔
rows:y表示同时导出数据 (可选),默认值y,n表示只导表结构
log:日志文件输了到当前目录 (可选)
导出3--数据库模式
exp 用户名/密码@网络服务名 file=20101001.dmp full=y rows=y log=exp.log grants=y
file:导出的*.dmp文件输出到当前目录
full:导出整个库
rows:y表示同时导出数据 (可选),默认值y ,n表示只导库结构
log:日志文件输了到当前目录 (可选)
grants: y表示导出授权 (可选)
2.1.3 导出时的字符集处理
在源数据库与目标数据库字符集不同时,会发生字符集转换
四个地方的字符集要先整清楚:
1、源数据库的字符集
2、exp工具所在环境的字符集,你很可能在windows xp上运行exp导出远程oracle数据库的数据。
3、imp工具所在环境的字符集,你很可能在windows xp上运行imp向远程的oracle数据库导入数据。
4、目标数据库的字符集
按最坏的情况计算,上面4个地方的字符集都不一样,最多会发生3次字符集的转换。转换时字符集不兼容就会发生乱码。
查看数据库的字符集,数据库是英文linux系统:
select * from nls_database_parameters;
在查询结果中找三个地方:
NLS_LANGUAGE -- American
NLA_TERRITORY -- America
NLS_CHARACTEREST -- AL32UTF8
说明是:美国 AL32UTF8
查看exp,imp工具所在环境的字符集,是windows xp系统:
看注册表:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/可能有多个oracle,一般是KEY_OraClient10g_home1 到这里,看右侧,找NLS_LANG项的值是:简体中文ZHS16GBK。
说明是: 简体中文ZHS16GBK
由于上面两处字符集不同,在导出导入时,共会发生两次字符集转换,如果想避免转换,做如下修改:
修改exp,imp工具所在环境的字符集:
在windows xp命令行输入:SET NLS_LANG=American_America.AL32UTF8
与数据库的字符集一致,是上面英文linux系统中数据库字符集的三个名称的组合。
如果源数据库与目标数据库字符集不同,但exp工具与源数据库字符集一致, imp工具与目标数据库符集一致, 那么会在imp读*.dmp文件时发生字符集转换。
如果源数据库与目标数据库字符集不同,但exp,imp工具与源数据库字符集一致, 那么会在目标数据库接收*.dmp时发生字符集转换。
2.1.4 导出的权限
用户默认可导出自己的表,想导出别人的表或Schema,要有exp_full_database权限
grant exp_full_database to 用户名
2.2导入*.dmp文件
2.2.1 imp的四种模式:
与exp工具一样有四种模式,详见上面的exp的四种模式。
2.2.2 导入例子
导入1--用户模式
imp 用户名/密码@网络服务名 file=d:/oralce_bak_20101001.dmp ignore=y fromuser=从哪个用户 touser=导入到哪个用户 tables=表名1,表名2
file:指明*.dmp文件位置
ignore:y:表已存在就不用再创建表了直接导入。 n表示创建表再导入。 默认为n,(可选)
fromuser:从哪个用户来 (可选)
touser:导入到哪个用户 (可选)
tables:指定导入的表名,可以是多个,用逗号分隔 (可选)
导入2--表模式
imp 用户名/密码@网络服务名 tables=表名1,表名2 rows=y file=2010.dmp
tables:指定导入的表名,可以是多个,用逗号分隔
rows:y表示同时导出数据 (可选),默认值y,n表示只导表结构
file:导入当前目录的*.dmp文件到数据库
imp 用户名/密码@网络服务名 file=d:/oralce_bak_20101001.dmp show=y
show: y表示不导入,只看看。可以看看*.dmp是从哪个版本的库导出来的,好像也能看字符集。
使用DBA身份导入,空格部分要加单引号
imp \'用户名/密码@网络服务名 AS SYSDBA\' tables=表名1,表名2 rows=y file=2010.dmp
2.2.4 导入的权限
用户默认可导入自己的表,想导入别人的表或Schema,要有exp_full_database权限
grant exp_full_database to 用户名
三、使用数据泵 对数据导入导出
数据泵是Export 与 Import工具加强,工具在oracle bin 目录下的 expdp.exe , impdp.exe 两个工具
只能在服务端运行

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

SQL*Plus 是一款用于与 Oracle 数据库交互的命令行工具,主要功能包括执行 SQL 语句、查询数据、创建表和管理用户。它易于使用、跨平台兼容,并提供对 Oracle 数据库的强大访问权限,但仅限于命令行界面且缺乏图形用户界面。

不同数据库系统添加列的语法为:mysql:alter table table_name add column_name data_type; postgresql:alter table table_name添加column_name data_type; oracle; oracle:alter table table_name add(column_name data_type)

在SQL图形化工具中添加列:选择要添加列的表。右键单击并选择“Alter Table”或类似选项。定义新列的属性(名称、数据类型、长度、是否为空)。指定新列的默认值(如果适用)。选择适当的数据类型以避免数据错误。使用有意义的列名。考虑对大表执行添加列操作时的性能影响。在操作前始终备份数据库,以防止数据丢失。

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

构建 SQL 数据库涉及 10 个步骤:选择 DBMS;安装 DBMS;创建数据库;创建表;插入数据;检索数据;更新数据;删除数据;管理用户;备份数据库。

MySQL的安装和基本操作包括:1.下载并安装MySQL,设置根用户密码;2.使用SQL命令创建数据库和表,如CREATEDATABASE和CREATETABLE;3.执行CRUD操作,使用INSERT,SELECT,UPDATE,DELETE命令;4.创建索引和存储过程以优化性能和实现复杂逻辑。通过这些步骤,你可以从零开始构建和管理MySQL数据库。

添加列涉及不同数据库系统的差异化处理,需要明确使用的数据库。添加列意味着修改表结构,影响性能,需谨慎操作,遵循最佳实践。涉及锁表操作,需选择合适时机。高级用法包括设置默认值、约束和索引。调试错误信息,性能优化需考虑索引影响。编程习惯注重规范和注释。

在 SQL 中,将字符型数据转换为数值的方法有:1. CAST 函数强制转换数据类型;2. CONVERT 函数类似于 CAST 函数;3. TO_NUMBER 函数专门用于字符型转数字(Oracle);4. NUMERIC 函数允许指定精度和小数位数(SQL Server)。
