首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Oracle-对象类型

2013-11-29 
Oracle--对象类型?扩展已知的数组空间(extend)-- 创建流向的数据结构 模拟当个集合的单个流向CREATE OR RE

Oracle--对象类型

?

扩展已知的数组空间(extend)

-- 创建流向的数据结构 模拟当个集合的单个流向CREATE OR REPLACE TYPE OBJ_DIST_CODE AS OBJECT(  ORG_DIST_CODE  VARCHAR2(30),  ORG_TYPE_CODE  VARCHAR2(2),  DESC_DIST_CODE VARCHAR(30),  DESC_TYPE_CODE VARCHAR2(2));-- 创建流向的数据结构集合 模拟当个集合的所有流向CREATE OR REPLACE TYPE ARR_OBJ_DIST_CODE AS VARRAY(1000) OF OBJ_DIST_CODE;-- 验证单个组合中的多个流向是否存在重叠PROCEDURE VALIDATE_DIST_CODES(  ARR_OBJ IN ARR_OBJ_DIST_CODE,                                MSG     IN OUT VARCHAR2) AS    V_COUNT            NUMBER;    V_ORG_DIST_NAME_A  VARCHAR2(100);    V_DESC_DIST_NAME_A VARCHAR2(100);    V_ORG_DIST_NAME_B  VARCHAR2(100);    V_DESC_DIST_NAME_B VARCHAR2(100);  BEGIN    FOR I IN 1 .. ARR_OBJ.COUNT() LOOP      FOR J IN (I + 1) .. ARR_OBJ.COUNT() LOOP              -- 先判断原寄地是否存在重叠,根据结果在判断目的地是否存在重叠        V_COUNT := COUNT_DIST_CODE(ARR_OBJ(I).ORG_DIST_CODE,                                   ARR_OBJ(I).ORG_TYPE_CODE,                                   ARR_OBJ(J).ORG_DIST_CODE);              -- 判断原寄地是否重叠        IF V_COUNT > 0 THEN          V_COUNT := COUNT_DIST_CODE(ARR_OBJ(I).DESC_DIST_CODE,                                     ARR_OBJ(I).DESC_TYPE_CODE,                                     ARR_OBJ(J).DESC_DIST_CODE);                  -- 判断目的地是否重叠          IF V_COUNT > 0 THEN                      V_ORG_DIST_NAME_A  := GET_DIST_NAME_BY_DISTCODE(ARR_OBJ(I).ORG_DIST_CODE);            V_DESC_DIST_NAME_A := GET_DIST_NAME_BY_DISTCODE(ARR_OBJ(I).DESC_DIST_CODE);            V_ORG_DIST_NAME_B  := GET_DIST_NAME_BY_DISTCODE(ARR_OBJ(J).ORG_DIST_CODE);            V_DESC_DIST_NAME_B := GET_DIST_NAME_BY_DISTCODE(ARR_OBJ(J).DESC_DIST_CODE);                      MSG := '{0}' || V_ORG_DIST_NAME_A ||                    '{1}' || V_DESC_DIST_NAME_A ||                    '{2}' || V_ORG_DIST_NAME_B ||                   '{3}' || V_DESC_DIST_NAME_B ||                    '{4}';                    END IF;        END IF;      END LOOP;    END LOOP;  END;

?

?

热点排行