DOS 操作oracle导出数据库数据库 问题 !

利用cmd的操作命令导出oracle数据库,详情如下:
利用cmd的操作命令导出,详情如下:
1:G:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN目录下有个tnsname.ora文件,内容如下:
& (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.13.200)(PORT =
(CONNECT_DATA =
(SERVICE_NAME = cmstar)
其中:CMSTAR为数据库名,HOST为IP地址,所以可以仿效上面的例子手动添加数据录连接。
2:用cmd进入命令行
输入:tnsping cmstar
就是测试172.18.13.200是否连接成功
3:导入与导出,如下:
数据导出:
&1 将数据库TEST完全导出,用户名system 密码manager
导出到D:\daochu.dmp中
&& exp&&file=d:\daochu.dmp
&2 将数据库中system用户与sys用户的表导出
&& exp&&file=d:\daochu.dmp
owner=(system,sys)
&3 将数据库中的表table1 、table2导出
&& exp&&file=d:\daochu.dmp
tables=(table1,table2)&
&4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
&& exp&&file=d:\daochu.dmp
tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
&&不过在上面命令后面 加上
compress=y& 就可以了&
数据的导入
&1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
&& 在后面加上 ignore=y 就可以了。
&2 将d:\daochu.dmp中的表table1 导入
file=d:\daochu.dmp&
tables=(table1)&
注意事项:导出dmp数据时需要有导出表的权限的用户,否则不能导出。
附上操作截屏:
oracle中完全导入导出:cmd命令行模式
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
&DOS中可以执行时由于 在oracle 8i 中
&安装目录/ora81/BIN被设置为全局路径,
&该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
&oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
&SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例。
数据导出:
&1 将数据库TEST完全导出,用户名system 密码manager
导出到D:/daochu.dmp中
& &exp system/manager@TEST
file=d:/daochu.dmp full=y
&2 将数据库中system用户与sys用户的表导出
& &exp system/manager@TEST
file=d:/daochu.dmp owner=(system,sys)
&3 将数据库中的表inner_notify、notify_staff_relat导出
aichannel/aichannel@TESTDB2 file= d:/data/newsmgnt.dmp
tables=(inner_notify,notify_staff_relat)&
&4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
& &exp system/manager@TEST
file=d:/daochu.dmp tables=(table1) query=/" where filed1 like
& 上面是常用的导出,对于压缩,既用把dmp文件可以很好的压缩。
& 也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
&1 将D:/daochu.dmp 中的数据导入 TEST数据库中。
& &imp system/manager@TEST
&file=d:/daochu.dmp
& &imp aichannel/aichannel@HUST
full=y &file=file= d:/data/newsmgnt.dmp
&上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
& &在后面加上 ignore=y 就可以了。
&2 将d:/daochu.dmp中的表table1 导入
&imp system/manager@TEST
&file=d:/daochu.dmp
&tables=(table1)&
&基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
&操作者要有足够的权限,权限不够它会提示。
&数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
&给用户增加导入数据权限的操作
&第一,启动sql*puls
&第二,以system/manager登陆
&第三,create user 用户名 IDENTIFIED BY 密码
(如果已经创建过用户,这步可以省略)
&第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE
ANY VIEW ,
& &DROP ANY
VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION &TO
&第五, 运行-cmd-进入dmp文件所在的目录,&
userid=system/manager full=y file=*.dmp
& & & 或者 imp
userid=system/manager full=y file=filename.dmp
&执行示例:
&F:/Work/_Data/backup&imp
userid=test/test full=y file=inner_notify.dmp
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05
(c) Copyright 2000 Oracle Corporation. &All rights
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 -
Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表 & & &
&"INNER_NOTIFY" &
&4行被导入
准备启用约束条件...
成功终止导入,但出现警告。
&Oracle 不允许直接改变表的拥有者,
利用Export/Import可以达到这一目的.
& 先建立import9.par,
& 然后,使用时命令如下:imp
parfile=/filepath/import9.par
& 例 import9.par 内容如下:
& FROMUSER=TGPMS &
& TOUSER=TGPMS2 &
(注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
& INDEXES=Y
& GRANTS=Y
& CONSTRAINTS=Y
& BUFFER=409600
& file==/backup/ctgpc_.dmp
& log==/backup/import_.log
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。用pl/sql可以连接oracle数据库,但是dos下连接出现如图所示错误_oracle吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:47,789贴子:
用pl/sql可以连接oracle数据库,但是dos下连接出现如图所示错误收藏
我的电脑是win8.1 os的,之前用dos连接是可以的,最近出现的问题,跪求大虾帮忙。服务已经正常开启。
补充一下,我装的是oracle11g,
有多个tns吧?需要@tns名
管理员运行
1. 如果服务器在本地,看下
环境产量是否设置正确看下oracle_sid设置了吗2. 如果服务器在远程,需要@&tns_name&,就像楼上说的。3.
如果远程连接还要把数据库监听启动
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或oracle数据库之入门级语句(DOS命令符) - 博客频道 - CSDN.NET
CSDN前端知识共享
主要同大家分享一些编程心得.
分类:数据库
1.连接数据库
普通用户连接数据库:&
scott/tiger
--(默认的用户名/密码)、conn 即&connection&连接数据库的意思超级管理员连接:
Conn sys/sys as sysdba--oracle数据库不区分大小写2.基础语句
保存sql文件
save c:\test.txt
编辑sql语句,用记事本编辑
ed c:\1.txt --编辑 SQL 语句
--直接打开上一次缓存sql语句
描述数据表的结构
--打开employee员工表的结构
3.DDL(改变表结构)
增添一个数据表
Create table student(
id number(10),--number(10)表示长度为10的整数,number(10,2)表示长度为10,小数位为2的浮点型数值
name varchar2(10)
删除一个表
D清空一个表
Tr//正常情况下删除数据, 如果发现删除错了, 则可以通过 rollback 回滚。 如果使用了截断表,
则表示所有的数据不可恢复了.所以速度很快
修改一个表
r--将student表名改为stu
添加列属性
alter table student add age number(5) ;--增加一个年龄字段
alter table student modify age varchar2(5); --将原有的age字段类型改为varchar2
4.DML(改变数据结构)
insert into student(id,name) values(1001,charles);insert into student values(1001,charles); --两种写法
update student set name='charles' where id=1001
--注意区别drop
select * from student where id=1001
5.1字符函数
这是oracle数据库特有的函数,举几个常用的例子
Upper大写SELECT
Upper ('abcde') FROM--dual表是内置的只有一个元组的表SELECT * FROM emp WHERE ename=UPPER('smith') ;Lower小写SELECT lower('ABCDE') FROMInitcap首字符大写
Select initcap(ename)Substr截取字符串Select substr(,,abcde",length(,,abcde")-2)Select substr(,,abcde",-3,3)Length字符长度Select length(ename)Replace替换字符Select replace(ename,"a","A")Instr查询字符下标Select instr('Hello World','or') Lpadlpad('Smith',10,'*') 左侧填充 lpad() *****SmithRpadrpad('Smith',10,'*') 右侧填充 rpad()Smith*****Trim去除空格trim(' Mr Smith ') 过滤首尾空格 trim() Mr Smith
5.2日期函数
Months_between()
select months_between(sysdate,hiredate)Add_months()
select add_months(sysdate,1)Next_day()
select next_day(sysdate,'星期一')
select last_day(sysdate)
5.3转换函数
Next_day()
select next_day(sysdate,'星期一')--dual表是内置的只有一个元组的表Last_day
select last_day(sysdate)
5.4通用函数NVL()函数
若值为null,用相应值替换
select nvl(comm,0)--用0替换空值
6.分组函数
Avg ,max ,min ,sum,count(*)
需要注意的是,不允许在 WHERE 子句中使用分组函数.
分组统计各部门下工资&500 的员工的平均工资、
Select avg(sal) from emp where sal&500统计各部门下平均工资大于 500 的部门
select deptno,avg(sal) from emp group by deptno having avg(sal)&500 ;算出部门 30 中得到最多奖金的员工奖金
Select max(comm) from emp where deptno = 30 ;算出部门 30 中得到最多奖金的员工姓名
select ename from emp where comm = (select max(comm) from emp where
deptno=30);算出每个职位的员工数和最低工资
Select job,min(sal),count(*) f
分组嵌套--注意不要嵌套太深
select max(avg(salary))
from employee
7.多表查询
如果直接从两表查询,而不做任何连接操作,得到的结果集就是笛卡尔积
Select * from emp,
等值连接
select empno, ename, sal, emp.deptno, dname from emp, dept
where emp.deptno = dept.
select empno,ename,dname from emp left outer join dept on emp.deptno =
select empno,ename,dname from emp full outer join dept on emp.deptno =
8.分页查询
查询第3到第5条记录
select * from (select rownum no,e.* from--内置rownum字段
(select * from emp order by sal desc) e where rownum&=5 ) where no&=3;
排名:千里之外
(29)(3)(2)(1)(4)(1)(1)(1)(4)(5)(1)(21)(23)(6)(5)(2)(1)(2)(1)(3)(7)(1)(1)(1)(1)(1)(1)(6)(2)(2)(2)(1)(1)(2)(1)使用DOS打Oracle代码技巧
初学者学习时一般会用SQP*Plus打Oracle代码,但是Oracle10的是不可以复制黏贴操作,所以需要用DOS来操作,更简单,当然SQL*Plus也有自己的优点
要使用DOS,先要配置环境变量,win7是我的电脑-&高级系统设置-&高级-&环境变量,然后在系统变量里,找到Path,没有,就自己添加上去
如图,需要添加%oracle_home%/bin
配置好后,直接window键+R,跳出运行,输入cmd,回车,输入sqlplus/nolog
然后其他操作和使用SPL*Plus一样,只是可以黏贴复制本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 oracle导出数据库 的文章

 

随机推荐