1.给数字加上千分位分隔符

  select to_char(11111111111111111.25,'FM999,999,999,999,999,990.00') from dual;

另外:select to_char(0.3,'99.00') from dual 结果:‘   .30’;select to_char(0.3,'90.00') from dual 结果:‘  0.30’

2.显示单引号字符

(1)select 'it''s a bird' as phrase from dual;

(2)select q'(it's a bird)' as phrase from dual;

3.关于日期的获取

取当前日期前一个月的第一天的日期

SELECT last_day(add_months(SYSDATE, -2)) + 1  FROM dual;
 
取当前日期前一个月的最后一天的日期
SELECT last_day(add_months(SYSDATE, -1)) FROM dual;
 
本月的第一天和最后一天
select to_char(trunc(sysdate,'MONTH'),'yyyy-mm-dd') First_DayOfMonth,to_char(last_day(trunc(sysdate,'MONTH')),'yyyy-mm-dd') Last_DayOfMonth  from dual;
 
任意日期的最后一天
SELECT LAST_DAY(DATE'2016-09-23') FROM DUAL;
4.select 字段加双引号“字段”问题

  1、oracle表和字段是有大小写的区别。oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动转成大写。

  2、我们在使用navicat使用可视化创建数据库时候,navicat自动给我们加上了“”。
5.oracle中唯一性约束unique与主键/主码primary key的区别在于:
  Primary key既限制了唯一性又不允许为空;而unique只限制了非空字段的唯一性,它是允许为空的,而且允许重复的空值。
6.关于NULL
  NULL空值是比较特殊的类型,在进行数据处理时应给予关注或做NVL非空处理。
  不能用 = 或 <> 与空值判断,而应是IS/NOT NULL;NOT/IN()数据包含空值均为空;与空值比较时始终为真;order by字段包含空值则空值在末尾......
7.between...and...前后为同一值时,sql 结果集为0。
  SELECT * FROM A009 WHERE COL3 BETWEEN '001' AND '001';
8. TRUNC(number,num_digits)
  trunc是一种函数,功能是截取日期或数字,返回指定的值(根据num_digits决定)。
9. 执行存储过程
(1)exec procedure_test;
(2)begin
       procedure_test;
       end;
       /
10. Oracle中执行存储过程call和exec区别

在sqlplus中这两种方法都可以使用: 

exec pro_name(参数1..); call pro_name(参数1..); 

区别: 
1. 但是exec是sqlplus命令,只能在sqlplus中使用;call为SQL命令,没有限制. 

2. 存储过程没有参数时,exec可以直接跟过程名(可以省略()),但call则必须带上().
11. 修改oracle用户密码永不过期
  1.  

    查看用户的proifle是哪个,一般是default:

    sql>SELECT username,PROFILE FROM dba_users;

  2.  

    查看指定概要文件(如default)的密码有效期设置:

    sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

  3.  

    将密码有效期由默认的180天修改成“无限制”:

    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

    修改之后不需要重启动数据库,会立即生效。

  4.  

    修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;

    已经被提示的帐户必须再改一次密码,举例如下:

     $sqlplus / as sysdba

    sql> alter user smsc identified by <原来的密码> ----不用换新密码

 12. 修改oracle用户密码
以SYSDBA身份登陆时可以修改其他用户的密码,比如:
SQL> alter user user01 identified by user01;
13.多个case...when...语句时,如果case条件有重叠,则遵循前面优先的原则进行判断。
14.给表重命名
   ALTER TABLE old_name RENAME TO new_name
15.取整数
--1.取整(大)    
    select ceil(-1.001) value from dual   ;

--2.取整(小)   

select floor(-1.001) value from dual  ; 

--3.取整(截取) 

select trunc(-1.002) value from dual    ;   

--4.取整(舍入)   

        select round(-1.001) value from dual;

16.在同一个 PLSQL窗口中,不能同时定义执行多个触发器,否则会报PLS-01003错误

17.oracle数据库对象命名可以有“.”小数点符号,但使用时必须加双引号。如:create table "tab.tab1"

18.对于较大数据量的表,create新表要比update表速度快得多

19.存储过程调试需在测试窗口

20.分组合并字符串:

select id,WMSYS.WM_CONCAT(oid) oid
from table1
group by id

 21.regexp_like http://blog.csdn.net/qq_21909121/article/details/73469118
--查询value中以1开头60结束的记录并且长度是7位
select * from gyj where value like '1____60';
select * from gyj where regexp_like(value,'1....60');
 
22.PLSQL窗口执行多条数据操作语句时,每条语句后未commit,需所有语句执行完最后在窗口功能按钮一次提交。