![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Oracle
文章平均质量分 86
Do_GH
这个作者很懒,什么都没留下…
展开
-
【Oracle】事务的提交与回滚
本文主要简述了Oracle数据库的事务,并对锁的一些定义加以说明,针对于死锁的问题进行分析。原创 2023-02-24 16:38:14 · 4964 阅读 · 0 评论 -
【Oracle】PL/SQL游标
基本原理在PL/SQL块中执行语句时,Oracle会在内存空间中为其分配上下文区(Context Area),即一个缓冲区。游标是指向该区的一个指针,或是命名一个工作区(Work Area),或是一种结构化数据类型。它为应用程序提供了一种对具有多行数据查询结果集中的没一行数据分别进行单独处理的方法,是设计嵌入式SQL语句的应用程序的常用编程方式。游标分为显式游标和隐式游标两种。显式游标由用户声明和操作的一种游标;隐式游标是Oracle为所有数据操作语句(包括只返回单行数据的查询语句)自动声明和操作的一种原创 2020-09-02 14:51:15 · 222 阅读 · 0 评论 -
【Oracle】嵌套表
语法CREATE OR REPLACE TYPE <表类型> AS TABLE OF <类型>;嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。考查一个包含部门信息的表,在任何时间内每个部门会有很多项目正在实施。在一个严格的关系模型中,将需要建立两个独立的表department和project。嵌套表允许在department表中存放关于项目的信息。勿需执转载 2020-09-01 10:05:54 · 978 阅读 · 0 评论 -
【Oracle】管道函数(PIPELINED FUNCTION)
定义为了让 PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成。REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化。Oracle 9i 通过引入的管道化表函数纠正了后一种情况。表函数是返回整个行的集(通常作为一个集合)的函数,可以直接从 SQL 语句中进行查询,就好像它是一个真正的数据库表一样。管道化表函数与之相似,但是它像在构建时一样返回数据,而不是一次全部返回。管道化表函数更加有效,因为数据可以尽可能快地返原创 2020-08-27 15:49:31 · 746 阅读 · 0 评论 -
【Oracle】实现函数返回值为数据集合
创建自定义类型CREATE OR REPLACE TYPE O_SPLIT_STR AS OBJECT ( SPLIT_STR VARCHAR2(32));创建嵌套表CREATE OR REPLACE TYPE TYPE_SPLIT_STR AS TABLE OF O_SPLIT_STR;创建函数CREATE OR REPLACE FUNCTION F_SPLIT_STR ( str varchar2, --待分拆的字符串 split varchar2 --数据分隔符)RE原创 2020-08-27 11:01:43 · 432 阅读 · 0 评论 -
【Oracle】TYPE定义的数据类型
目录TYPE定义的数据类型语法示例%TYPE %ROWTYPETYPE定义的数据类型除了基本数据类型,Oracle中提供了一种自定义数据类型的方法,类似C语言中的结构类型。语法TYPE <数据类型名称> IS <数据类型>;在Oracle中用户被允许定义两种类型,RECORD类型(记录类型)和TABLE类型(表类型)。示例-- 定义一个交易记录类型TYPE TRANS_RECORD IS RECORD ( FEE NUMBER, -- 定义交易金额 TRANS_原创 2020-08-26 14:49:30 · 5846 阅读 · 1 评论 -
【Oracle】IF EXISTS用法
在Oracle中没有SQL中的if exists(...)的用法,所以可以用以下几种方法来替代判断符合条件的个数是否为0DECLARE cnt number;BEGIN SELECT COUNT(*) INTO cnt FROM TEMP_ERROR_ITEM WHERE SER_PROVINCE_ID = '130201'; IF cnt = 0 THEN DBMS_OUTPUT.PUT_LINE('无记录'); END IF;END;先定义一个变量,将所要查询的条件写成一个SE转载 2020-07-16 10:59:05 · 10792 阅读 · 0 评论 -
【Oracle】定时作业
创建定时作业declare job number;begin dbms_job.submit( job, 'test;', -- 需要执行的存储过程,注意一定要在存储过程后加';' sysdate, -- 开始执行时间 'sysdate + 1' -- 执行频率,每天运行一次 );end;查看定时作业select * from user_jobs; -- 查看用户所有的定时作业select * from dba_原创 2020-06-23 01:05:02 · 555 阅读 · 0 评论