1.常用函数

1.TO_CHAR —- 日期转换

1
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM dual

转换日期时to_char函数的格式参数应该传递如’YYYY-MM-DD HH24:MI:SS’,不区分大小写,之前写的’yyyy-MM-dd HH:mm:ss’有问题: 没有指定24小时制,‘HH’应该为’HH24’,因为格式不区分大小写,所以’MM’和’mm’会认为是同样的代码,月份应使用’MM’,分采用’MI’.

2.SYS_GUID —- 生成UUID

1
2
select sys_guid() from dual; /*默认如 A8F662B86E7413FEE040970A437C6BD7*/
select lower(sys_guid()) from dual; -- 小写

默认是大写没有分隔符,使用lower()函数可转换为小写

3.RAWTOHEX —- 将一个二进制构成的字符串转换为十六进制

1
select rawtohex(sys_guid()) from dual

可以应对sys_guid() 乱码的情况

2.修改过期密码

1.首先登录 sqlplus / as sysdba

2.修改密码

1
alter user xxx identified by "22@@xx!";

3.解锁用户

1
alter user xxx account unclock ;

3.常用SQL语句

1. INSERT INTO SELECT 语句

语句形式为INSERT INTO Table1(field1,field2..) SELECT value1,value2... FROM Table2 ,这里需要注意的是字段需要一致.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
insert into TBL_ROLE_MENU(ID, ROLE_ID, MENU_ID, CREATE_TIME, UPDATE_TIME, DELETE_FLAG)
SELECT *
from (
         select b.guid                        as ID,
                (select ID
                 from TBL_ROLE
                 where CODE = 'ADMIN') 		  as ROLE_ID,
                t.ID                          as MENU_ID,
                sysdate                       as CREATE_TIME,
                sysdate                       as UPDATE_TIME,
                (select 0 from dual)          as DELETE_FLAG
         from TBL_MENU t,
              (select lower(sys_guid()) as guid
               from dual) b
         where t.DELETE_FLAG <> 1
           and t.HIDDEN <> 1
     );

4.表空间及用户相关操作

1.建立表空间

1
2
3
4
-- 格式:
create tablespace 表间名 datafile '数据文件名' size 表空间大小
-- 例:
create tablespace HEALTH datafile '/data/ora/health.dbf' size 2000M RESUSE AUTOEXTEND ON NEXT 100M MAXSIZE 5000M;;

2.创建表空间下的用户

1
2
3
4
-- 格式: 
create user 用户名 identified by 密码 default tablespace 表空间表;
-- 例:
create user health identified by "123456" default tableplace HEALTH;

3.新用户授权

1
2
grant connect,resource to health; -- 表示把 connect,resource权限授予health用户
grant dba to health; -- 给health用户授予dba权限

4.删除表空间

1
2
3
4
-- 1.首先修改表空间的状态为offline
alter tablespace xxx offline;
-- 2.将表空间及物理文件一并删除
drop tablespace xxx including contents and datafiles;

5.删除用户 – 需要关闭当前用户的连接

1
drop user xxx;