Oracle 导入导出 创建用户等

localhost:1158/em
D:appAdministratorproduct11.2.0dbhome_1inimp.exe

 log  path

 E:appAdministratordiag dbmsorclorcl race

oracle 相关查询:

获取表字段:

select * 
from user_tab_columns 
where Table_Name='用户表' 
order by column_name

获取表注释:

select * 
from user_tab_comments 
where Table_Name='用户表'

order by Table_Name

获取字段注释:

select * 
from user_col_comments 
where Table_Name='用户表'

order by column_name

/* 获取表:*/

select table_name from user_tables; //当前用户的表      

select table_name from all_tables; //所有用户的表  

select table_name from dba_tables; //包括系统表

select table_name from dba_tables where owner='zfxfzb'

/* 
user_tables:

table_name,tablespace_name,last_analyzed等

dba_tables:

ower,table_name,tablespace_name,last_analyzed等

all_tables:

ower,table_name,tablespace_name,last_analyzed等

all_objects:

ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status等 
*/

/*  获取表字段:*/

select * from user_tab_columns where Table_Name='用户表';

select * from all_tab_columns where Table_Name='用户表';

select * from dba_tab_columns where Table_Name='用户表';

/* user_tab_columns:

table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等

all_tab_columns :

ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等

dba_tab_columns:

ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等 
*/

/*  获取表注释:*/

select * from user_tab_comments

/* 
user_tab_comments:table_name,table_type,comments

相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。 
*/

/* 获取字段注释:*/

select * from user_col_comments

/*

user_col_comments:table_name,column_name,comments

相应的还有dba_col_comments,all_col_comments,这两个比user_col_comments多了ower列。 
*/

Oracle给某一用户设置dba权限 

imp命令导入数据表时出现了

IMP-00013: 只有 DBA 才能导入由其它 DBA 导出的文件
IMP-00000: 未成功终止导入

解决方案如下:

如果连接的用户没有dba的权限,但是又想用这个用户导入dmp文件,可以先以DBA的身份登录,然后grant dba to 用户,再以刚才的用户身份登录导入即可。

例如:

Grant dba to tcm

然后以tcm身份登录导入即可。

突然想查看数据库中哪些用户拥有DBA权限,于是百度了一下,找到了这一条语句:

 
  1. select * from dba_role_privs where granted_role='DBA'  

注意:执行这一条语句需要执行者本来就要有DBA权限

另外如果要是想收回某用户的DBA权限则执行:

  1. revoke dba from user_Name  

oracle 导出空表方法:

1 首先使用下面的sql语句查询一下当前用户下的所有空表

select table_name from user_tables where NUM_ROWS=0;
 
2然后用以下SQL语句执行查询  再将查询结果导出 执行  就可以了

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

oracle通过另一个用户导入

exp user/pwd owner=导出用户 file=d:1.dmp
imp user/pwd fromuser=导出用户 touser=导入用户 file=d:1.dmp 

exp user/pwd owner=导出用户 file=d:1.dmp
imp user/pwd fromuser=导出用户 touser=导入用户 file=d:1.dmp

windows下:
exp 'sys/口令 as sysdba' file=a.dmp owner=导出用户 rows=N
imp 'sys/口令 as sysdba' file=a.dmp fromuser=导出用户 touser=导入用户

rows=y表示数据和结构都导出
rows=n只导出结构,不导数据

ORACLE导入遇到ORACLE错误959解决方法  表空间某某不存在

查询的确没有对应的表空间:  用system账户登录操作

select * from dba_data_files where tablespace_name = ' WHCG_LOCAL_DB '

添加上对应的表空间,再重新导入:

create tablespace WHCG_LOCAL_DB
logging
datafile 'D:WHCG_LOCAL_DB.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;

还需要进行空表设置

owner 能导出空表 

exp ss_sc_manager/khdzkehai@orcl owner=ss_sc_manager file=d:2017048备份.dmp  

imp ss_sc_manager/manager@orcl file=d:2017048备份.dmp

从备份的dmp文件只倒入一张表:

imp user/password@连接标识符 file=F:Oracle.dmp tables=tablename ignore=y

导出表:

         
 exp   用户/密码   tables=表 
 exp   用户/密码   tables=(表1,…,表2) 
 exp   system/manager   tables=(用户.表) 
 exp   system/manager   tables=(用户1.表1,用户2.表2)

某两张表
exp wac_db_manager/khdzkehai@orcl  tables=(t_house_base,t_house_info)   file=f:a.dmp

导入一样

imp user/pwd@orcl  fromuser=导出用户 touser=导入用户 file=d:1.dmp 

导入表:

imp study/study@orcl file=zrp.dmp tables=toms ignore=y

imp help=y 
2. 导入一个完整数据库
imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 导入一个或一组指定用户所属的全部表、索引和其他对象
imp system/manager file=seapark log=seapark fromuser=seapark imp
system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4. 将一个用户所属的数据导入另一个用户
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
imp system/manager file=tank log=tank fromuser=(seapark,amy)
touser=(seapark1, amy1)
5. 导入一个表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
6. 从多个文件导入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
7. 使用参数文件
imp system/manager parfile=bible_tables.par
bible_tables.par参数文件:
#Import the sample tables used for the Oracle8i Database Administrator's
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
8. 增量导入
imp system./manager inctype= RECTORE FULL=Y FILE=A

、、、、、、、、、、、、、、、、、、、、、

给某个用户附加权限 (给system用户的sysdba设置了权限) 登录plsql

grant sysdba to system


设置表空间自动增长
alter database datafile'D:oracleproduct10.2.0oradataoracleperfstat.dbf' autoextend on;

创建表 空间等
CREATE TABLESPACE SS_SC_DB
DATAFILE 'D:SS_SC_DB.DBF' size 10240M  autoextend on next 100M maxsize unlimited   初始大小10G  每次扩展100m  无限制扩展


EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
--索引表空间
CREATE TABLESPACE SS_SC_DB_Index
DATAFILE 'D:SS_SC_DB_Index.dbf' size 512M   autoextend on  extend management local;
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

create temporary tablespace SS_SC_DB_temp
tempfile 'd:SS_SC_DB_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

--2.建用户
create user ss_sc_db_manager identified by khdzkehai
default tablespace SS_SC_DB
temporary tablespace SS_SC_DB_temp;

--3.赋权
grant connect,resource to ss_sc_db_manager;
grant create any sequence to ss_sc_db_manager;
grant create any table to ss_sc_db_manager;
grant delete any table to ss_sc_db_manager;
grant insert any table to ss_sc_db_manager;
grant select any table to ss_sc_db_manager;
grant unlimited tablespace to ss_sc_db_manager;
grant execute any procedure to ss_sc_db_manager;
grant update any table to ss_sc_db_manager;
grant create any view to ss_sc_db_manager;

原文地址:https://www.cnblogs.com/llhhll/p/6727899.html