当前位置:数据库 > Oracle >>

oracle 语句问题

create or replace function bin_to_dec(f_bin varchar2) return number is v_num number; v_temp number; begin for i in 1..length(f_bin) loop select (to_number(substr(f_bin,(0-i),i))*power(2,i-1) ) into v_temp from dual; v_num:=v_num+v_temp; end loop; return v_num; end; 重点是这一行,(substr(f_bin,(0-i),i)),substr函数的第二个参数看不明白,求教
答案:SUBSTR
语法:  SUBSTR(string,a[,b])
功能:  返回从字母为值a开始b个字符长的string的一个子字符串.如果a是0,那么它就被认为从第一个字符开始.如果是正数,返回字符是从左边向右边进行计算的.如果b是负数,那么返回的字符是从string的末尾开始从右向左进行计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b小于1,那么将返回NULL.如果a或b使用了浮点数,那么该数值将在处理进行以前首先被却为一个整数.
其他:第二个参数代表开始位置,正值表示从左边数,负值表示从右边数 取f_bin的后i个字符 (substr(f_bin,(0-i),i)), 就是从后面开始逆向依次截取字符的意思。从最后一个字符开始截。
比方说f_bin=‘123456’ ,则结果依次是,6,56,456,3456,23456,123456 substr('This is a test', 6, 2) would return 'is' 
substr('This is a test', 6) would return 'is a test' 
substr('TechOnTheNet', 1, 4) would return 'Tech' 
substr('TechOnTheNet', -3, 3) would return 'Net' 
substr('TechOnTheNet', -6, 3) would return 'The' 
substr('TechOnTheNet', -8, 2) would return 'On' 


 看看这些你就明白了 

上一个:oracle分页 语句
下一个:哈尔滨 oracle DBA 的工作,目前什么情况?

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,