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

DECLARE

TYPE CourseList IS TABLE OF VARCHAR2(10);

courses CourseList;

BEGIN

-- 初始化数组元素,大小为3

courses := CourseList( 'Biol 4412 ', 'Psyc 3112 ', 'Anth 3001 ');

-- 为数组增加一个元素,数组大小为4,末尾的元素为NULL

courses.EXTEND; -- append one null element

-- 为增加的元素赋值,如果没用EXTEND,这里会出错

courses(4) := 'Engl 2005 ';

end

模拟字符对象

-- 创建组合SETIDS表集合类型

CREATE OR REPLACE TYPE TBL_SPLIT_TYPE IS TABLE OF VARCHAR2 (4000);

--字符串分割函数

FUNCTION SPLIT_STR( P_STR IN VARCHAR2,

P_DELIMITER IN VARCHAR2 DEFAULT (','))

RETURN TBL_SPLIT_TYPE IS

J INT := 0;

I INT := 1;

LEN INT := 0;

LEN1 INT := 0;

STR VARCHAR2(4000);

MY_SPLIT TBL_SPLIT_TYPE := TBL_SPLIT_TYPE();

BEGIN

LEN := LENGTH(P_STR);

LEN1 := LENGTH(P_DELIMITER);

WHILE J < LEN LOOP

J := INSTR(P_STR, P_DELIMITER, I);

IF J = 0 THEN

J := LEN;

STR := SUBSTR(P_STR, I);

MY_SPLIT.EXTEND;

MY_SPLIT(MY_SPLIT.COUNT) := STR;

IF I >= LEN THEN

EXIT;

END IF;

ELSE

STR := SUBSTR(P_STR, I, J - I);

I := J + LEN1;

MY_SPLIT.EXTEND;

MY_SPLIT(MY_SPLIT.COUNT) := STR;

END IF;

END LOOP;

RETURN MY_SPLIT;

END;

模拟集合对象

-- 创建流向的数据结构 模拟当个集合的单个流向

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;

oracle 对象类型是什么意思,Oracle-对象类型相关推荐

  1. oracle+视图+图形化,如何利用Object Browser图形化工具提高Oracle开发工作效率(二)对象创建管理篇...

    上一篇我们讲解过有关SQL编写与调试方面的技巧,小编在作图时遗漏了一点,就是Unicode的多语言对应,可以同时显示各种语言不乱码,这是其他工具所不具备的.如图: 下面我们就来说一说如何高效的创建和编 ...

  2. [Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效(转)

    原帖由 qingyun 于 2010-6-21 15:44 发表  在写pl/sql的时候,有个很重要的注意点: 比如: begin   update  某个sqlserver的表@dblink名字 ...

  3. sql object_id() 对应oracle,关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考...

    在ORACLE中,我们可以通过file_id(file#)与block_id(block#)去定位一个数据库对象(object).例如,我们在10046生成的trace文件中file#=4 block ...

  4. oracle查询数据做标记,【学习笔记】Oracle如何使用dbms_shared_pool.markhot标记热对象...

    [学习笔记]Oracle如何使用dbms_shared_pool.markhot标记热对象 时间:2016-10-30 20:17   来源:Oracle研究中心   作者:HTZ   点击: 次 天 ...

  5. Oracle官方并发教程之不可变对象

    原文链接,译文链接,译者:Greenster,校对:郑旭东 一个对象如果在创建后不能被修改,那么就称为不可变对象.在并发编程中,一种被普遍认可的原则就是:尽可能的使用不可变对象来创建简单.可靠的代码. ...

  6. oracle对象不在回收站中,Oracle PURGE子句清除回收站中的对象

    使用PURGE语句从回收站中清除表,索引,已删除的表空间或者整个回收站,并释放与对象关联的所有空间.PURGE语句不能回滚,清除以后也不能恢复. 查询USER_RECYCLEBIN数据字典查阅回收站内 ...

  7. Oracle PURGE子句清除回收站中的对象

    使用PURGE语句从回收站中清除表,索引,已删除的表空间或者整个回收站,并释放与对象关联的所有空间.PURGE语句不能回滚,清除以后也不能恢复. 查询 USER_RECYCLEBIN数据字典查阅回收站 ...

  8. Oracle/MSSQL/Mysql 常用数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下:   字段类型   中文说明   限制条件   其它说明   CHAR  固定长度字 ...

  9. 常见oracle数据类型及其在java中的对应类型

    SQL数据类型 JDBC类型代码 标准的Java类型 Oracle扩展的Java类型 1.0标准的JDBC类型: CHAR java.sql.Types.CHAR java.lang.String o ...

  10. oracle中check约束性别,关于Oracle Check类型约束的导入与启用

    今天有朋友问,Oracle的Check约束在indexfile中是否存在,导入后没有检查到. 我测试了一下,事实证明是可以的,Oracle的Check Constraints可以通过imp,使用ind ...

最新文章

  1. 加入/ LINQ和Lambda的位置
  2. 用计算机测出你真实的年龄,一款神奇的App:能够测出你的真实年龄
  3. Kafka(1)-概述
  4. [repost]Xcode因为证书问题经常报的那些错
  5. Spotify模式并非“敏捷涅磐”
  6. InnoDB文档笔记(三)—— Undo Log
  7. 线上MYSQL同步报错故障处理总结 实现同步不一致进行邮件报警
  8. kali linux 2.0下安装ssh和metasploit
  9. DFS(连通块) HDU 1241 Oil Deposits
  10. struts教程笔记6
  11. weblogic开发EJB
  12. 通过python实现txt中,字母概率的计算,以及信源熵的计算,并且输出
  13. 停机状态下的电磁流量计保养方法
  14. 网上作业提交系统的数据库表
  15. python 推导式练习题
  16. 记WSL下MySQL安装和使用BUG
  17. ECCV 2020 论文大盘点-动作检测与识别篇
  18. 一种windows下简单的USB摄像头图像获取方式
  19. 淘宝详情接口调用示例
  20. ORACLE重启常用命令

热门文章

  1. 凝结芽孢杆菌行业调研报告 - 市场现状分析与发展前景预测
  2. 导航卫星系统行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  3. android vitamio 教程,使用vitamio开发步骤
  4. 从入门到入土:基于C语言实现并发Web服务器|父进程子进程|代码展示
  5. PyTorch 功能欠缺,Meta 推出 TorchRec 来补救?
  6. 有奖征文 | 蒋涛邀你悦评《UNIX传奇》新书,赢技术进阶好礼
  7. JuiceFS 你应该知道的一些事
  8. 开发者点评GitHub 暗黑模式:太暗了
  9. 云时代下,移动云揭秘数据库“新解”
  10. 低代码,是否能“取代”开发者?