摘要: 在Oracle数据库中,SOUNDEX函数返回字符串参数的语音表示形式,相对于比较一些读音相同,但是拼写不同的单词是非常有用的。SOUNDEX函数的语法:SOUNDEX(string)计算语音的算法:1.保留字符串首字母,但删除a、e、h、i、o、w、y2.将下表中的数字赋给相对应的字母(1) 1:b、f、p、v(2) 2:c、g、k、q、s、x、z(3) 3:d、t(4) 4:l(5) 5:m、n(6) 6:r3. 如果字符串中存在拥有相同数字的2个以上(包含2个)的字母在一起(例如b和f),或者只有h或w,则删除其他的,只保留1个4.只返回前4个字节,不够用0填充示例:soundex(‘t 阅读全文
posted @ 2012-01-04 16:47 左正 阅读(528) 评论(1) 推荐(0)
摘要: Oracle PL/SQL 过程调试的输出方法1.最基本的DBMS_OUTPUT.PUT_LINE()方法。随便在什么地方,只要是BEGIN和END之间,就可以使用DBMS_OUTPUT.PUT_LINE(output);然而这会有一个问题,就是使用该函数一次最多只可以显示255个字符,否则缓冲区会溢出。此外,函数DBMS_OUTPUT.ENABLE(20000)这种函数,仅仅是设置整个过程的全部输出缓冲区大小,而非DBMS_OUTPUT.PUT_LINE()的缓冲区大小。对于超过255个字符的变量,使用DBMS_OUTPUT.PUT_LINE()方法是没有效的。据说在Oracle10中,解除 阅读全文
posted @ 2012-01-04 16:17 左正 阅读(2821) 评论(0) 推荐(0)
摘要: 表函数可接受查询语句或游标作为输入参数,并可输出多行数据。该函数可以平行执行,并可持续输出数据流,被称作管道式输出。应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表。1。 用游标传递数据利用游标 REF CURSOR 可将数据集(多行记录)传递到PL/SQL函数:SELECT FROM TABLE (myfunction (CURSOR (SELECT FROM mytab))); 2。 利用两个实体化视图(或表)作为样板数据CREATE MATERIALIZED VIEW sum_sales_country_mvBUILD IMMEDIATEREFRESH COMPLETE.. 阅读全文
posted @ 2012-01-04 14:04 左正 阅读(4043) 评论(0) 推荐(0)
摘要: 在实际的应用中,为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成。REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化。 9i 通过引入的管道化表函数纠正了后一种情况。表函数是返回整个行的集(通常作为一个集合)的函数,可以直接从 SQL 语句中进行查询,就好像它是一个真正的数据库表一样。管道化表函数与之相似,但是它像在构建时一样返回数据,而不是一次全部返回。管道化表函数更加有效, 因为数据可以尽可能快地返回。 管道化表函数必须返回一个集合。在函数中,PIPE ROW 语句被用来返回该集合的单. 阅读全文
posted @ 2012-01-04 14:04 左正 阅读(528) 评论(0) 推荐(0)
摘要: 如何使用 Oracle Round 函数 (四舍五入)描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。SELECT ROUND( number, [ decimal_places ] ) FROM DUAL参数:number : 欲处理之数值decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )Sample :select round(123.456, 0) from dual; 回传 123 select round(123.456, 1) from dual; 回传 123.5 select round... 阅读全文
posted @ 2012-01-04 11:33 左正 阅读(23010) 评论(0) 推荐(0)
摘要: oracle的nvl函数的用法通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值 select nvl(sum(t.dwxhl),1) from tb_jhde t where zydm=-1 这里关心的nvl的用法,nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value 如: NVL(a,b)就是判断a是否是NULL,如果不是返回a的值,如果是返回b的值 通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值另一个有关的有用方法 declare i integer select nvl(sum(t.dwx... 阅读全文
posted @ 2012-01-04 11:28 左正 阅读(747) 评论(0) 推荐(0)
摘要: //概况 //基本上,当你希望一个PLSQL(或者java或者c)程序作为数据源,而不是表, //你可能会用到管道函数(pipelined function). //pipelined function操作起来就像一张表 //一个pl/sql函数可能会用于数据仓库的数据库里面,转换大量的数据。//这可能包括格式化一系列转换数据,它们是不同的函数执行后得到的结果。 //在oracle database 9i之前,大量的数据转换,既需要显著的内存开销, //又需要在转换的每个阶段将数据存储在中间表里面。在这两种情况下, //加载进程都会致使性能的下降。//使用PL/SQL表函数,可以在数据转换的时 阅读全文
posted @ 2012-01-04 11:25 左正 阅读(418) 评论(0) 推荐(0)
摘要: 假设你可以得到两个日期的 年,月,日(下面以 2011.7.16 和 2011.7.20为例)// Javascript 中的月份从零开始// 8月要写成7, 7月要写成6,1月要写成0。。。var day1 = (new Date).setFullYear(2011, 7, 16);var day2 = (new Date).setFullYear(2011, 7, 20);var number_of_days = (day2 - day1) / 86400000;// 输出 4alert(number_of_days); // 将值赋予 inputdocument.getElementBy 阅读全文
posted @ 2012-01-04 10:32 左正 阅读(380) 评论(0) 推荐(0)