ORACLE中文排序方式
Oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序
修改ORACLE字段的默认排序方式:
按拼音(默认): alter session set nls_sort = SCHINESE_PINYIN_M;
按笔画:alter session set nls_sort = SCHINESE_STROKE_M;
按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;
NLSSORT(),用来进行语言排序
拼音
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_PINYIN_M')
笔划
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_STROKE_M')
部首
SELECT * FROM TEAM ORDER BY NLSSORT(排序字段名,'NLS_SORT = SCHINESE_RADICAL_M')
------------------------------------------------------------------------------------------------------
增加列,默认在最后一列。
ALTER TABLE test ADD pName VARCHAR(20);
-------------------------------------------------------
Oracle在表中指定位置增加字段:
1. 新建别名表test2, 在指定位置添加列(占位置:d as pName)。
create table test2 as select d as pName, d from test
2. 清空新增字段的值。
update test2 set pName=null
3. 修改字段的类型。
alter table test2 modify(pName varchar2(20))
4. 删除原来的表test。
drop table test
5. 重命名表为test。
rename test2 to test
==========================================
查看表的结构
desc test
就可以向列里添加值了。
update test set pName='test'
--转自
该贴由koei123转至本版2015-2-5 17:29:39