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 sysdba

2、 执行修改表空间命令如下

       alter tablespace  TEST rename to TEST1;

    注:可连续对多个表空间进行重命名

3、 确认表空间名已经修改

     select name from v$tablespace;


前提:在CMD 命令下

导出命令:exp 用户名/密码@数据库 owner=用户名 file=文件存储路径(如:F:\abcd.dmp)

测试截图:exp ZM/sql123@ORCL owner=ZM file=F:\abcd.dmp

 

导入命令:imp 用户名/密码@数据库 fromuser=用户名 touser=用户名 file=d:\cu.dmp ignore=y

 imp:命令类型  

cu/mycu@db:导入的数据库登陆(用户名/密码@数据库)  

fromuser:文件的指定用户

 touser:指定导入到当前登录的数据库某个用户  

file:需要导入的数据文件  

ignore:是否忽略创建错误

 

测试截图:imp ZM/sql123@ORCL fromuser=ZM touser=SZZM file=F:\test.dmp ignore=y

 

如果报错

1. 被导入的表空间名,必须和dmp文件里导出的表空间名一致

 

2. IMP-00038:无法转换为环境字符集句柄

   原因:  数据泵 不一致导致的,比如说你用expbd导出来的   用imp导入的时候就会出现这个错误

     解决:数据泵 要一致:exp导出来的 用imp导入;

             expbd导出来的 用impbd导入。

 

3. msg.dmp 是由具有dba角色的用户到导出的。要有相同或更高权限的用户才能导入该文件。

  解决方案 :用system   oracle123登录,给用户授权   grant dba to XXX

 

 原文链接:https://blog.csdn.net/qq_25221835/article/details/82586961


 

 

导出表数据 - 方式二:阙教

 

 本地装了Oracle的话,导入表数据 阙教:(本地装了oracle才行)

 ——————————————————————————————————————————————————————————————————————————————————————————————————

 

 (导入 - 方式二:灵数

 

      plsql 导入报错: IMP-00038:无法转换为环境字符集句柄

 

      原因:  数据泵 不一致导致的,比如说你用expbd导出来的   用imp导入的时候就会出现这个错误

        解决:数据泵 要一致:exp导出来的 用imp导入;

                expbd导出来的 用impbd导入。

 

  impbd导入dmp文件:

一,在Oracle的安装文件的BIN目录下,shift +右键 开启powershell命令窗口。

 

二,以dba身份登录oracle数据库:

Sqlplus user/123@orcl as sysdba

 

三:创建DIRECTORY:

create directory DbData as 'F:/DevelopServerData/DbData';

 

四:给用户授权

Grant read,write on directory DbData to user;

 

五:执行成功后,退出sqlplus:

输入命令exit,回车。操作目录回到F盘。

 

 

六:在F:\DevelopServerData\下手动创建DbData文件夹,并将dmp文件放在文件夹中。

 

七:导入数据

   impdp user/123@orcl remap_schema=test:user directory=DbData dumpfile=20171211.dmp table_exists_action=replace

或: Impdp 账号/密码@localhost:1521/orcl DIRECTORY=DUMP_DIR DUMPFILE=文件名.dmp SCHEMAS=账号


原文链接:https://blog.csdn.net/happyboywlg/article/details/79518918

 

        

 

 ————————————————————————————————————————————————————————————————————————

 

删除用户表空间所有数据

最省心的方法是级联删除
 
drop user XXXX cascade; 最后这个级联特别有用(删除用户以及所有关联的数据库对象)
 
麻烦一点的办法,把删除语句做成存储过程

注释:

1、删除用户 然后重建,这样最快:

1、在cmd中输入
sqlplus / as sysdba
2、删除用户A,级所有和用户A关联的数据
drop user a cascade;
3、重建用户A
create user A identified by 密码;
grant connect,resource to A;
4、登入A用户,就ok了
conn A/密码
这个方法挺快的,还方便啊。

drop user xxx cascade这样有些数据库对象好像也删除不了

有时候某些用户被授予很复杂的权限和角色,(若删除用户再创建用户的方法会很繁琐),所以还是衡量哪种方法更快,根据实际情况选择

————————————————



posted @ 2019-09-27 16:43  真理不真  阅读(30231)  评论(0编辑  收藏  举报