(详)通过plsql对dmp文件进行导入和导出

您所在的位置:网站首页 oracle导出dump多张表 (详)通过plsql对dmp文件进行导入和导出

(详)通过plsql对dmp文件进行导入和导出

2024-03-04 22:57| 来源: 网络整理| 查看: 265

本文将通过plsql客户端工具,演示如何对Oracle数据库中的表以dmp文件的格式进行导出和导入。

dmp的导出 步骤如下: 1、打开plsql并登陆,点击 工具 ——> 导出表 这里写图片描述 2、在打开的窗口选中要导出的表, 输出文件 那里指定导出的dmp文件的保持路径和文件名 这里写图片描述 3、点击 导出

dmp的导入 步骤如下: 1、打开plsql并登陆,点击 工具 ——> 导入表 打开plsql并登陆,点击 工具 ——> 导出表 这里写图片描述 2、在打开的窗口中,导入文件 那里选择dmp文件所在路径和文件 这里写图片描述 3、点击 导入

场景: 在已有dmp文件而不知道其中表的表空间名的情况下,有以下两种解决方法: 1、通过编辑器打开dmp文件,通过搜索关键字“TABLESPACE”,找到所有表的所属表空间,然后将其替换为自定义的表空间。再将该dmp文件通过plsql导入到Oracle数据库中。 (该方法只适用在文件内容 较少的情况下,而且将表的所属表空间修改,可能会有不可预计的影响)

2、在不知表空间名的情况下,还是直接通过plsql将dmp文件导入到Oracle数据库中,在导入的过程中,可能会产生很多的错误,暂时不管。在导入程序执行完后,我们直接点击 plsql导入窗口中的 日志 选项,查看导入过程中日志信息。这时,我们可以通过日志所提示的错误信息,得知某些表原先所属的表空间名,或者是其它的一些重要信息。 (小编遇到的情况是不知道dmp文件中所包含的表的所属表空间名,在第一次导入dmp文件失败后,通过查看日志找到数据库中的表原先所属的所有表空间后,依次创建这些表空间,并将数据库清空后再次重新导入,此时已经成功。注:至于导出dmp文件时的用户跟导入时的用户不同也是可以的,反正我是没受到影响,当然,能够一样就更好了)

以下是创建数据库用户并授权,表空间的设定等相关的sql语句:

-- 创建oracle用户 create user xue identified by 123456; (“xue”为数据库用户名,“123456”为该用户密码) -- 为新建用户授予角色权限 grant dba to xue; (为了方便,直接将dba角色权限赋予新建的数据库用户) -- 设置oracle帐号密码永久不过期 -- 1、查看用户的proifle是那个,一般是default: SELECT username,PROFILE FROM dba_users; -- 2、查看指定概要文件(如default)的密码有效期设置: SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; -- 3、将密码有效期由默认的180天修改成“无限制”: ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; (前三步已经解决第四步没必要) -- 4、修改后,还没有被提示ORA-28002警告的用户不会再碰到同样的提示; -- 已经被提示的用户必须再改一次密码,举例如下: $sqlplus / as sysdba sql> alter user xue identified by 123456; (刚新建的数据库用户默认的账号密码有效期为180天,避免以后失效,直接将其设为永久不过期) -- 1.创建表空间 create tablespace XUESPACE datafile 'C:\Java\oracle_tablespace\XUESPACE.dbf' size 100m reuse autoextend on next 10m maxsize unlimited; (“XUESPACE”为新建的表空间名称,“C:\Java\oracle_tablespace\XUESPACE.dbf”是与表空间对应的文件的路径和文件名,其它的表空间大小相关的设定,暂时可忽略) -- 2.创建用户,指定 表空间 和 临时表空间 create user xue identified by 123456 default tablespace XUESPACE temporary tablespace temp; (“XUESPACE”为用户“xue”指定的表空间,“temp”为其临时表空间) -- 3.查看当前用户默认的表空间、临时表空间 select * from user_users; ( username 为当前用户名; default_tablespace 为当前用户默认的表空间; temporary_tablespace 为当前用户默认的临时表空间 ) -- 4.修改用户默认的表空间 alter user xue default tablespace spaceX; (将用户“xue”的默认表空间改为“spaceX”) -- 查看某个表空间有多少张表 select * from all_tables where tablespace_name='spaceX'; (“spaceX”为表空间名,此处需要注意表空间名的大小写,如“USERS”必须为大写才能将数据查询出来) -- 查看某个用户关联的所有表空间及各个表空间中表的数量 select tablespace_name,count(*) from all_tables where owner = 'XUE' group by tablespace_name; -- Oracle如何查询表空间对应文件所在的路径 select * from dba_data_files where tablespace_name='USERS'; (“USERS”为表空间名)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3