localhost:1158/em
D:\app\Administrator\product\11.2.0\dbhome_1\bin\imp.exe
log path
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权限,于是百度了一下,找到了这一条语句:
- select * from dba_role_privs where granted_role='DBA'
注意:执行这一条语句需要执行者本来就要有DBA权限
另外如果要是想收回某用户的DBA权限则执行:
- 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.dmpexp user/pwd owner=导出用户 file=d:\1.dmp
imp user/pwd fromuser=导出用户 touser=导入用户 file=d:\1.dmpwindows下:
exp 'sys/口令 as sysdba' file=a.dmp owner=导出用户 rows=Nimp 'sys/口令 as sysdba' file=a.dmp fromuser=导出用户 touser=导入用户rows=y表示数据和结构都导出rows=n只导出结构,不导数据
表空间某某不存在
查询的确没有对应的表空间: 用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:\.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
help=y 2. 导入一个完整数据库 system/manager file=bible_db log=dible_db full=y ignore=y 3. 导入一个或一组指定用户所属的全部表、索引和其他对象 system/manager file=seapark log=seapark fromuser=seapark imp system/manager file=seapark log=seapark fromuser=(seapark,,c,harold) 4. 将一个用户所属的数据导入另一个用户 imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy imp system/manager file=tank log=tank fromuser=(seapark,) 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:\oracle\product\10.2.0\oradata\oracle\perfstat.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_DBtemporary 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;