Oracle学习问题 2014-06-20
2014-06-21 00:11
176 查看
一、数据导出:
注意:以下所有命令不是在sqlplus下执行的,而是在cmd命令窗口下执行的,本机一定要装有Oracle,因为exp和imp是oracle的命令,我开始犯的大错啊,一直在sqlplus下执行!
1、 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y (有时间导出的时候会出现 无法解析指定的连接标识符的错误, 你把 @TEST 去掉就不报错了,具体不太清楚为什么)
2、 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3、 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4、 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面 加上 compress=y 就可以了
二、数据的导入
1、将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
(有时间导出的时候会出现 无法解析指定的连接标识符的错误, 你把 @TEST 去掉就不报错了,具体不太清楚为什么)
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
注意:
你要有足够的权限,权限不够它会提示你。
2,Oracle序列的问题
首先序列主要是为了解决oracle主键自增的,因为oracle不像mysql一样,可以设置主键自增,oralce是通过序列(SEQUENCE )和触发器(Trigger)来实现主键自增策略的
因为以前没有用到oracle序列,今天才知道自己理解是错的,而且钻进了死胡同,同事怎么讲都不懂,不过,还好,最后懂了
,序列(requence)和表是没有关系的, 因为项目在上线时要初始化一些数据,假如有一个table中有3条数据, 下一个主键id需要是4,那么再你建立序列的时候就应该建立一个序列,开始值是4,而不是1,每一个序列和表是没有关系的,你可以N多个表用一个序列,当然,应该没有人这么做吧,应该都是一个表一个序列吧! 举例说明,假如现在有一个表emp 员工表,内有三条数据 ,id分别是1,2,3,然后现在create一个序列,初始值是4,每次+1 ,当你第一次调用这个序列时,返回4,然后你再手动将4设置到emp对象的主键上,此时,你不用纠结,不管你停机还是怎么,下次你再次调用这个序列时,都不会是4了,当然也不会是5,因为每次初始化序列时,他都会加载20个,如果你断电或者宕机,下次就会从21开始,不管你上次缓存中的20个用了没有,都不会再使用了
注意:以下所有命令不是在sqlplus下执行的,而是在cmd命令窗口下执行的,本机一定要装有Oracle,因为exp和imp是oracle的命令,我开始犯的大错啊,一直在sqlplus下执行!
1、 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y (有时间导出的时候会出现 无法解析指定的连接标识符的错误, 你把 @TEST 去掉就不报错了,具体不太清楚为什么)
2、 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3、 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4、 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面 加上 compress=y 就可以了
二、数据的导入
1、将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
(有时间导出的时候会出现 无法解析指定的连接标识符的错误, 你把 @TEST 去掉就不报错了,具体不太清楚为什么)
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
注意:
你要有足够的权限,权限不够它会提示你。
2,Oracle序列的问题
首先序列主要是为了解决oracle主键自增的,因为oracle不像mysql一样,可以设置主键自增,oralce是通过序列(SEQUENCE )和触发器(Trigger)来实现主键自增策略的
因为以前没有用到oracle序列,今天才知道自己理解是错的,而且钻进了死胡同,同事怎么讲都不懂,不过,还好,最后懂了
,序列(requence)和表是没有关系的, 因为项目在上线时要初始化一些数据,假如有一个table中有3条数据, 下一个主键id需要是4,那么再你建立序列的时候就应该建立一个序列,开始值是4,而不是1,每一个序列和表是没有关系的,你可以N多个表用一个序列,当然,应该没有人这么做吧,应该都是一个表一个序列吧! 举例说明,假如现在有一个表emp 员工表,内有三条数据 ,id分别是1,2,3,然后现在create一个序列,初始值是4,每次+1 ,当你第一次调用这个序列时,返回4,然后你再手动将4设置到emp对象的主键上,此时,你不用纠结,不管你停机还是怎么,下次你再次调用这个序列时,都不会是4了,当然也不会是5,因为每次初始化序列时,他都会加载20个,如果你断电或者宕机,下次就会从21开始,不管你上次缓存中的20个用了没有,都不会再使用了
相关文章推荐
- Oracle学习之二(用游标解决数组问题)
- Oracle字符集问题整理 (学习心得与网摘总结)
- 学习Oracle遇到的实际问题(持续更新)
- 开源编译器学习笔记06(VC6 语法分析器——见面语法树状态机之start)——2014_2_2
- 编译原理学习笔记06——(连连看—准备一下很多课件都演示的公式E → E+T | T )——2014_1_22
- Oracle 学习过程中的笔记以及几个问题
- hi3531 SDK已编译文件系统制作jffs2文件系统镜像并解决问题 . 分类: arm-linux-Ubuntu HI3531 2014-06-18 08:45 951人阅读 评论(0) 收藏
- Oracle 学习笔记之二 足球赛程统计问题
- [Oracle 学习笔记] 06 DML
- Oracle学习的零散问题
- 学习 Oracle过程中几个常见问题的总结
- ORACLE学习问题记录(不断更新)
- SCRIPT TO CHECK FOR FOREIGN KEY LOCKING ISSUES(oracle deadlock 学习资料-06)
- 06-Oracle学习_练习-子查询 和 连接查询
- C++ Standard Stl -- SGI STL源码学习笔记(06) stl_vector 与 一些问题的细化 2 push_back函数剖析
- 今天开始学习Oracle 10g,遇到的问题。
- 【Oracle学习起步--1】用户解锁及密码输入问题
- 学习ORACLE中关于配置文件的读取和修改心得以及问题
- [学习笔记] ORACLE 游标提取值与表内列名相同引发的问题
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结