前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >REVERSE关键字之REVERSE函数

REVERSE关键字之REVERSE函数

作者头像
bisal
发布2019-01-29 11:01:29
8250
发布2019-01-29 11:01:29
举报

昨天说到@dbsnake讲的一个reverse函数索引避免全表扫描的案例,REVERSE关键字可以用于函数和索引。REVERSE函数和REVERSE索引。这次先试试REVERSE函数。

REVERSE函数:针对数据库内部存储的对象编码进行反转。

REVERSE is an undocumented Oracle string function, which returns the input string in its reverse order.

SQL> select reverse('12345') from dual; REVER ----- 54321

REVERSE函数是将数字的顺序逆序打印。

SQL> select reverse('Oracle') from dual; REVERS ------ elcarO

也可以将字母的顺序逆序打印。

SQL> select reverse('测试') from dual; REVE ---- ????

打印出乱码,可能是字符集的问题,当前使用的是SSH方式登录服务器后sqlplus,

SQL> show parameter nls_lang NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ nls_language                         string      AMERICAN

登录到笔记本的PLSQL中,由于OS是中文字符集,所以这里应该可以显示中文。

SQL> SELECT '测试' FROM dual; '测试' ------ 测试

SQL> select reverse('测试') from dual; REVERSE('测试') --------------- 允獠

已经是乱码了。

======================================================================

下面使用dump看看实际执行reverse的情况。

SQL> select dump('12345'), dump(reverse('12345')) from dual; DUMP('12345')                DUMP(REVERSE('12345')) ---------------------------- ---------------------------- Typ=96 Len=5: 49,50,51,52,53 Typ=96 Len=5: 53,52,51,50,49 将'12345'的ASCII字码按逆序排列打印。

SQL> select dump('Oracle'), dump(reverse('Oracle')) from dual; DUMP('ORACLE')                     DUMP(REVERSE('ORACLE')) ---------------------------------- ---------------------------------- Typ=96 Len=6: 79,114,97,99,108,101 Typ=96 Len=6: 101,108,99,97,114,79

将'Oracle'的ASCII字码按逆序排列打印。

SQL> select dump('测试'), dump(reverse('测试')) from dual; DUMP('测试')                  DUMP(REVERSE('测试')) ----------------------------- ----------------------------- Typ=96 Len=4: 178,226,202,212 Typ=96 Len=4: 212,202,226,178

这里也是将‘测试’的ASCII字码按逆序排列打印,但因为中文字符是由两个ASCII组成的,当逆序时,新组合的ASCII两两形成一个新的汉字,212,202是允,226,178獠。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年09月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档