常用的一些sql
-- 查询所有用户
SELECT * from dba_users;
-- 查询当前用户的权限
select * from session_privs;
-- 登录用户查看自己的角色
SELECT * FROM ROLE_SYS_PRIVS;
创建用户
create user user_name identified by pass_word
[or identified exeternally]
[or identified globally as ‘CN=user’]
[default tablespace tablespace_default]
[temporary tablespace tablespace_temp]
[quota [integer k[m]] [unlimited] ] on tablesapce_ specify1
[,quota [integer k[m]] [unlimited] ] on tablesapce_ specify2
[,…]…on tablespace_specifyn
[profiles profile_name]
[account lock or account unlock]
中所定义的用户名相同。
户的外部名。
的最大空间。
例子:
-- 创建一个 mr 用户,口令为 mrsoft,并设置默认的表空间为 users,临时表空间为 temp的用户
create user mr identified by mrsoft
default tablespace users
temporary tablespace temp;
-- 给用户赋予权限
grant dba,connect,resource to mr;
常用sql
SELECT * FROM DBA_DIRECTORIES
创建diretory 对象
CREATE DIRECTORY dump_dir AS 'D:\work\Oracle\dmpLog';
将directory的权限赋给scott用户,用户scott就也可以导入数据了
GRANT READ,WRITE ON DIRECTORY dump_dir TO scott;
删除directory对象
DROP DIRECTORY dump_dir;
修改directory对象
create or replace directory DUMP_DIR as 'F:\SqlDmp'
impdp 用户/密码@orcl schemas=用户 dumpfile=文件.DMP directory=dump_dir logfile=日志文件.log
impdp ProduceManager/merit@orcl schemas=ProduceManager dumpfile=PRODUCEMANAGER20180814.DMP directory=dump_dir logfile=PRODUCEMANAGER20180814.log
impdp SYSTEM/root directory=dump_dir dumpfile=tab.dmp tables=scott.dept,scott.emp remap_schema=scott:SYSTEM
impdp system/root directory=dump_dir dumpfile=scott.dmp schemas=scott remap_schema=scott:system;
impdp system/root directory=dump_dir dumpfile=tablespace.dmp tablespaces=tbsp
impdp SYSTEM/root directory=dump_dir dumpfile=fulldata.dmp full=y
该参数用于将源模式中的所有对象转载到目标模式中,语法如下:
remap_schema=source_schema:target_schema
该参数用于指定导入时更改表空间名称。在 Oracle 10g 版本出现以前,这一操作非常复杂。首先,
因为没有写操作权限,必须移除原始表空间的限额,然后再设置表空间。在导入过程中,原始表空间
中的对象可以存储在设置后的表空间中。当任务完成后,必须将表空间恢复到原来的状态。在 Oracle 10g
中导入时,REMAP_TABLESPACE 参数的设置大大简化了该操作,这样只需要对目标表空间进行限额,
而不需要其他条件。语法如下:
remap_tablespace=source_tablespace:target_tablespace
在 IMPDP 中使用该参数时,可以从 DMP 文件中提取对象的 DDL 语句,以便之后使用。该参数
用于指定将导入的 DDL 操作写入到 SQL 脚本中。语法如下:
sqlfile=[directory_object:]file_name
impdp scott/root directory=dump_dir dumpfile=sqlfile.dmp sqlfile=test.sql
该参数用于指定当表已经存在时导入作业要执行的操作,默认为 SKIP。
table_exists_action={skip | append | truncate | replace}
该参数用于指定移动空间时要被导入到目标数据库的数据文件。语法如下:
transport_datafiles=datafile_name
datafile_name 用于指定被复制到目标数据库的数据文件,下面来看一个例子。
impdp system/root directory=dump dumpfile=tran_datafiles.dmp transport_datafiles='d:\OracleData\test.dbf'
将scott用户的两张表导出
expdp scott/root DIRECTORY= dump_dir dumpfile=scott.dmp TABLES=emp,dept
将用户scott和hr的全部内容导出
expdp SYSTEM/root DIRECTORY= dump_dir dumpfile=schema.dmp schemas= scott,hr
导出表空间tbsp
expdp SYSTEM/root DIRECTORY= dump_dir dumpfile=tablespace.dmp tablespaces= tbsp
expdp SYSTEM/root DIRECTORY= dump_dir dumpfile=fulldata.dmp FULL=y
该参数用于指定要导出的内容,默认值为 ALL,语法如下:
content={all | data_only | metadata_only}
expdp scott/1qaz2wsx directory=dump_dir dumpfile=content.dmp content=data_only
该参数用于指定过滤导出数据的 WHERE 条件。语法如下:
query=[schema.] [table_name:] query_clause
在 dept 表中,导出部门编号为 10 的数据,代码及运行结果如下。
expdp scott/1qaz2wsx directory=dump_dir dumpfile=query.dmp tables=dept query='where deptno=10'
该参数指定转储文件和日志文件所在的目录。语法如下:
directory=directory_object
其中,directory_object 用于指定目录对象的名称。需要注意:目录对象是使用 create directory 语句
建立的对象,而不是普通的磁盘目录。
该参数用于指定转储文件的名称,默认名称为 expdat.dmp。语法如下:
dumpfile=[directory_object:]file_name[,…]
该参数用于指定数据库模式导出,默认为 n。语法如下:
full={y | n}
当设置该选项为 y 时,表示执行数据库导出。
执行数据库导出时,数据库用户必须具有 EXP_FULL_DATABASE 角色或 DBA 角色。
该参数用于指定导出日志文件的名称,默认名称为 export.log。语法如下:
logfile=[directory_object:]file_name
该参数用于指定显示导出作业进程的详细状态,默认值为 0。语法如下:
status=integer
integer 用于指定显示导出作业状态的时间间隔,单位为秒。指定该参数后,每隔特定时间间隔会
显示作业完成的百分比。
该参数用于指定表模式导出。语法如下:
Tables=[schema_name.]table_name[:partition_name][,…]
该参数用于指定要导出表空间列表。