Oracle三种集合数据类型的比较
Oracle三种集合数据类型的比较-PLSQL PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的。在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray。其中varray集合中的元素是有数量限制的,index_by表和嵌套表是没有这个限制的。index-by表是稀疏的,也就是说下标可以不连续,varray类型的集合则是紧密的,他的下标没有间隔。index_by表不能存储在数据库中,但是嵌套表和varray可以被存储在数据库中。 集合在使用时必须先使用type进行定义方可使用 1.index_by表 type type_name is table
生成一段连续的数字
产生一段连续的日期:SELECT TO_DATE('20080101', 'YYYYMMDD') + ID - 1FROM (SELECT ROWNUM ID FROM ALL_OBJECTS)WHERE ID <= 366需要用到一段连续的数字,通常可用SELECT ROWNUM ID FROM ALL_OBJECTS来生成。-- 创建类型TP_NUM,准备用来存储返回值CREATE OR REPLACE TYPE TP_NUM IS TABLE OF NUMBER;-- 生成P_MIN(最小值)至P_MAX(最大值)之间的连续的数-- 测试用例:SELECT * FROM TABLE(F_GET_SEQ(1, 10))CREATE OR REPLACE FUNCTION F_GET_SEQ(P_MIN IN NUMBER, P_MAX IN NUMBER)RETURN TP_NUM ISO_NUM TP_NUM := TP_NUM();V_
oracle正则表达式(未经测试完全)
一. 匹配字符字符类匹配的字符举 例d从0-9的任一数字dd匹配72,但不匹配aa或7aD任一非数字字符DDD匹配abc,但不匹配123w任一单词字符,包括A-Z,a-z,0-9和下划线wwww匹配Ab-2,但不匹配∑£$%*或Ab_@W任一非单词字符W匹配@,但不匹配as任一空白字符,包括制表符,换行符,回车符,换页符和垂直制表符匹配在HTML,XML和其他标准定义中的所有传统空白字符S任一非空白字符空白字符以外的任意字符,如A%&g3;等.任一字符匹配除换行符以外的任意字符除非设置了MultiLine先项[…]括号中的任一字符[abc]将匹配一个单字符,a,b或c.[a-z]将匹配
根据指定分隔符拆分字符串
在10G中可用正则表达式实现,但9I并不支持。9i---------------------------------------------------------------------------------------select substr('11,22,3377,99', pos, len)From (select nvl(lag(position) over(order by rownum) + 1, 1) pos,position - nvl(lag(position) over(order by rownum) + 1, 1) lenfrom (select decode(instr('11,22,3377,99', ',', 1, rownum),0,length('11,22,3377,99') + 1,instr('11,22,3377,99', ',', 1, rownum)) positionfrom dualconnect by rownum <=length('11,22,3377,99') -length(re
代码表更新
/*代码表更新用途:更新以"DM_HF_"开头的代码表(可选全部更新或指定表更新)编制日期:2009-03-12测试用例:传入参数P_OPTION:1、若要全部更新,传入值可为:'ALL', 'all', 'All',例如:EXEC SP_UPDATE_DM_HF(ALL);2、若只要单表更新,传入该表名,例如:EXEC SP_UPDATE_DM_HF(DM_HF_DWB);3、若要多表更新,传入各表名,并以','隔开,例如:EXEC SP_UPDATE_DM_HF('DM_HF_BJLBB,DM_HF_BJLXB,DM_HF_BJXLB');*/CREATE OR REPLACE PROCEDURE SP_UPDATE_DM_HF(P_OPTION IN VARCHAR2 -- 更新表选项,详细说明见上面的测试用例) ASV_
record & pl/sql表
练习record & pl/sql表的使用,所谓的数据抽取只是用来测试结果的正确与否。create or replace procedure sp_test_hzy is-- 使用record和pl/sql表实现数据抽取-- record_type用于获取每一行记录type record_type is record(r_SJLYSS t_dmzh_dygx.SJLYSS%type,r_LYB_COL_NAME t_dmzh_dygx.LYB_COL_NAME%type,r_LYB_COL_VALUE t_dmzh_dygx.LYB_COL_VALUE%type,r_LYB_COL_VALUE_CN t_dmzh_dygx.LYB_COL_VALUE_CN%type,r_BZB t_dmzh_dygx.BZB%type,r_BZB_COL_VALUE t_dmzh_dygx.BZB_COL_VALUE%type,r_BZB_COL_VALUE_CN t_dmzh_dygx.BZB_CO