Oracle汉字排序
使用一下SQL
select *
from T_0303003
order by stock_holder
进行选取数据时(stock_holder为存放中文的字段),结果发现两库返回的记录顺序不一致。琢磨之后应该为字符集问题,一个库字符集为系统默认字符集,另一个库为UTF-8字符集。查找资料后发现,对于中文字段的排序,应该使用以下方式:
-- 按拼音排序 (系统默认)
select *
from T_0303003
order by nlssort(stock_holder,'NLS_SORT=SCHINESE_PINYIN_M');
-- 按部首排序
select *
from T_0303003
order by nlssort(stock_holder,'NLS_SORT=SCHINESE_RADICAL_M');
-- 按笔画排序
select *
from T_0303003
order by nlssort(stock_holder,'NLS_SORT=SCHINESE_STROKE_M');
相关文档:
with
lockinfo as (
select distinct decode(sql_hash_value, 0, prev_hash_value, sql_hash_value) sql_hash_value, decode (sql_hash_value, 0, prev_sql_addr, sql_address) sql_address, s.sid, l.id1 object_id, l.block
from v$lock l, v$session s
&n ......
正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段a的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。这个问题在论坛中也常被网友问到,下面我总结一下,给出几种处理方法。 ......
--定义类型
CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2(4000);
--创建函数
CREATE OR REPLACE FUNCTION f_stringsplit (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN ty_str_split PIPELINED
/*****
****字符串拆分,相当于java.lang.String类的split方法
****注意:新增t ......
create or replace directory MY_DIR as '/usr/test/';
create or replace function f_exportTxt(
--传入参数
i_query in varchar2,
i_separator in varchar2,
i_dir in varchar2,
i_filename in varchar2
) return number
is
/**
** 函数名:f_exportTxt
&nbs ......
TO_DATE格式(以时间:2007-11-02 13:45:25为例)
Year:
yy two digits 两位年 &n ......