oracle 对象类型是什么意思,Oracle-对象类型
扩展已知的数组空间(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-对象类型相关推荐
- oracle+视图+图形化,如何利用Object Browser图形化工具提高Oracle开发工作效率(二)对象创建管理篇...
上一篇我们讲解过有关SQL编写与调试方面的技巧,小编在作图时遗漏了一点,就是Unicode的多语言对应,可以同时显示各种语言不乱码,这是其他工具所不具备的.如图: 下面我们就来说一说如何高效的创建和编 ...
- [Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效(转)
原帖由 qingyun 于 2010-6-21 15:44 发表 在写pl/sql的时候,有个很重要的注意点: 比如: begin update 某个sqlserver的表@dblink名字 ...
- sql object_id() 对应oracle,关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考...
在ORACLE中,我们可以通过file_id(file#)与block_id(block#)去定位一个数据库对象(object).例如,我们在10046生成的trace文件中file#=4 block ...
- oracle查询数据做标记,【学习笔记】Oracle如何使用dbms_shared_pool.markhot标记热对象...
[学习笔记]Oracle如何使用dbms_shared_pool.markhot标记热对象 时间:2016-10-30 20:17 来源:Oracle研究中心 作者:HTZ 点击: 次 天 ...
- Oracle官方并发教程之不可变对象
原文链接,译文链接,译者:Greenster,校对:郑旭东 一个对象如果在创建后不能被修改,那么就称为不可变对象.在并发编程中,一种被普遍认可的原则就是:尽可能的使用不可变对象来创建简单.可靠的代码. ...
- oracle对象不在回收站中,Oracle PURGE子句清除回收站中的对象
使用PURGE语句从回收站中清除表,索引,已删除的表空间或者整个回收站,并释放与对象关联的所有空间.PURGE语句不能回滚,清除以后也不能恢复. 查询USER_RECYCLEBIN数据字典查阅回收站内 ...
- Oracle PURGE子句清除回收站中的对象
使用PURGE语句从回收站中清除表,索引,已删除的表空间或者整个回收站,并释放与对象关联的所有空间.PURGE语句不能回滚,清除以后也不能恢复. 查询 USER_RECYCLEBIN数据字典查阅回收站 ...
- Oracle/MSSQL/Mysql 常用数据库的字段类型及大小
Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字 ...
- 常见oracle数据类型及其在java中的对应类型
SQL数据类型 JDBC类型代码 标准的Java类型 Oracle扩展的Java类型 1.0标准的JDBC类型: CHAR java.sql.Types.CHAR java.lang.String o ...
- oracle中check约束性别,关于Oracle Check类型约束的导入与启用
今天有朋友问,Oracle的Check约束在indexfile中是否存在,导入后没有检查到. 我测试了一下,事实证明是可以的,Oracle的Check Constraints可以通过imp,使用ind ...
最新文章
- 加入/ LINQ和Lambda的位置
- 用计算机测出你真实的年龄,一款神奇的App:能够测出你的真实年龄
- Kafka(1)-概述
- [repost]Xcode因为证书问题经常报的那些错
- Spotify模式并非“敏捷涅磐”
- InnoDB文档笔记(三)—— Undo Log
- 线上MYSQL同步报错故障处理总结 实现同步不一致进行邮件报警
- kali linux 2.0下安装ssh和metasploit
- DFS(连通块) HDU 1241 Oil Deposits
- struts教程笔记6
- weblogic开发EJB
- 通过python实现txt中,字母概率的计算,以及信源熵的计算,并且输出
- 停机状态下的电磁流量计保养方法
- 网上作业提交系统的数据库表
- python 推导式练习题
- 记WSL下MySQL安装和使用BUG
- ECCV 2020 论文大盘点-动作检测与识别篇
- 一种windows下简单的USB摄像头图像获取方式
- 淘宝详情接口调用示例
- ORACLE重启常用命令
热门文章
- 凝结芽孢杆菌行业调研报告 - 市场现状分析与发展前景预测
- 导航卫星系统行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- android vitamio 教程,使用vitamio开发步骤
- 从入门到入土:基于C语言实现并发Web服务器|父进程子进程|代码展示
- PyTorch 功能欠缺,Meta 推出 TorchRec 来补救?
- 有奖征文 | 蒋涛邀你悦评《UNIX传奇》新书,赢技术进阶好礼
- JuiceFS 你应该知道的一些事
- 开发者点评GitHub 暗黑模式:太暗了
- 云时代下,移动云揭秘数据库“新解”
- 低代码,是否能“取代”开发者?