This is an old revision of the document!
# PL SQL
# Oracle常用查询语句
## 查询数据库/表/字段等属性
```sql select * from sys.user_tablespaces; --查询用户表空间 select * from sys.dba_data_files; --查询表空间对应的文件 select * from sys.user_tables; --查询用户数据库表 ```
## 查询用户的所有字段 ```sql select * from all_tab_columns where owner = '<owner_name>'; ```
# Oracle的几个坑
## 与Hibernate共用时,数据库中插入的自动生成的值与sequence的当前值差别很大
Hibernate默认allocationSize为50,这样会每次取50个id作为缓存,如果服务器重次,则再取50个,而sequence在项目中每次缓存20,会插入数据库的值与sequance的值会有差别。详见[更多资料](http://blog.csdn.net/zgf19930504/article/details/54694807)
## Null的判断
语句中不能用=, !=判断是否为null,而需要使用is null或is not null
## 排序字段值不唯一导致随机乱序
Order By时,如果排序字段的值不唯一,需要加上一个唯一值字段作为第二排序依据,否则可能会导致分页时,字段值相同的数据出现的位置不固定,导致有些部分数据在不同页面重复出现,另外有部分数据不能显示