oracle常用命令整理

时间:2019-11-25
本文章向大家介绍oracle常用命令整理,主要包括oracle常用命令整理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

用户

创建用户:

create user username identified by password;

创建用户并指定表空间:

 CREATE USER username IDENTIFIED BY password DEFAULT TABLESPACE tablespacename; 

用户授权:

grant create session, connect, resource to username;

授予全部权限

grant all privileges to username; -- 最好不要授权dba给普通用户

授权创建表

grant create any table to username;

授权创建视图:

grant create any view to username;

修改用户密码:

alter user username identified by password;

撤销用户权限:

 revoke privileges from username;

表空间

创建表空间:

create tablespace tblspacename datafile 'xxxx.dbf' size 10m;

将表空间分配给用户:

 ALTER USER username DEFAULT TABLESPACE tablespacename; 

查看表空间的位置:

select file_name from dba_data_files where tablespace_name = 'xxx.dbf'

DIRECTORY

创建DIRECTORY

create directory dir_name as 'D:/oracle/dir_dp'; 

授权

Grant read,write on directory dir_name to username;

查看目录及权限

SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
 WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;

导入导出

exp:

exp userid='username/password@ip:port/orcll' file=e:sms20191022.dmp

如果想用exp导出空表:首先要手动为空表分配空间,执行下面的语句,将sql复制出来执行,再执行导出语句即可

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

imp:

imp userid='username/password@ip:port/orcl' file=e:sms20191022.dmp full=y ignore=y

expdp:

expdp userid='username/password@ip:port/orcl' directory=DATA_PUMP_DIR dumpfile=filename.dmp logfile=logname.log 

impdp:

impdp userid='bps/bpspwd' schemas=bps directory=DATA_PUMP_DIR dumpfile=bps.dmp logfile=bps.log remap_schema=source_schema:target_schema remap_tablespace=source_tablespace:target_tablespace

其中,exp/imp操作DMP文件时不能修改表空间,即导出的表空间和导入的表空间应该保持一致;expdp/impdp操作DMP文件时,可以通过remap_tablespace参数来修改表空间

其他

oracle sql中的(+)

Oracle的sql语句中,多表查询时会出现(+)号标记,oracle中的(+)是一种特殊的用法,(+)表示外连接,并且总是放在非主表的一方。例如:

左外连接:

select A.a,B.a from A LEFT JOIN B ON A.b=B.b;

等价于

select A.a,B.a from A,B where A.b = B.b(+);

后记

在使用oracle时,最好不要用管理员权限来操作,因为在本机自用的话可以随便使用,但是如果给公司做项目,一般都有严格的权限限制,在项目上线移植数据库时,会由于你的权限过高,权限不匹配,导致数据库移植失败。

原文地址:https://www.cnblogs.com/codebetter/p/11927614.html