Bulk Collect特性可以让我们在PL/SQL中能使用批查询,批查询在某些情况下能显著提高查询效率. BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQL引擎发送到PL/SQL引擎. 可以在select into,fetch into,returning into语句使用bulk collect. 注意在使用bulk collect时,所有的into变量都必须是collections. 1. 背景 以前曾经做过一个需求,数据库中有两张表,A表是2千…
PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构,可用于创建存储过程.触发器和程序包,给SQL语句的执行添加程序逻辑,与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性.灵活性和安全性.   PL/SQL 的优点 支持 SQL,在 PL/SQL 中可以使用: 1.数据操纵命令 2.事务控制命令 3.游标控制…
PL/SQL是没命名的存储过程,函数,触发器,PL/SQL块的语法格式如下: [declare] --声明部分,可选 begin --执行部分,必须 [exception] --异常处理部分,可选 end PL/SQL块每条语句必须用分号结束,单行注释--,多行注释/*...*/,下面是一个PL/SQL块例子 set serveroutput on declare --声明变量 a int :=  1; --声明并且赋值 address varchar2(128); mobilephone va…
程序异常是在操作期间正常,出现在节目的准备过程是不可避免的例外.但是,必须有一个相应的异常处理机 制,以保证程序的正常运行.PL/SQL程序运行过程中出现的错误.称为异常. 一个优秀的程序都应该可以正确处理 各种出错的情况.并尽可能的从错误中恢复. PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常运行过程中未预料的事件,程序块的异常处理定义的错误和自己定义的错误, 因为PL/SQL程序块一旦产生异常而没有指出怎样处理时,程序就会异常的终止. 有三种类型的错误…
从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. CONCAT(s1,s2)    将字符串s2连接到字符串s1的后面.任一字符串为空值则忽略此空值:两值都为空值则返回null.同样“||"也有此功能,且更方便些. INITCAP(s)    将字符串s的每个单词的第一个字母大写,其它字母小写. INSTR(s1,s2[,i][,j])    该函数…
刚刚在inthirties老大的博客里看到这篇文章,写的不错,正好自己最近在学习PL/SQL,转过来学习学习. ================================================================================== bulk collect是可以看做是一种批获取的方式,在我们的plsql的代码段里经常作为into的扩展来使用.对于select id into v from .... 是一个常用的用法.不过这里只能是返回单条记录的时候,…
1. PL/SQL概述 PL/SQL(Procedural Language/SQL)是Oracle的专用语言,是对标准SQL语言的扩展,它允许在其内部嵌套普通的SQL语句,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误.SQL语句的数据库操纵能力.数据查询能力和PL/SQL的过程处理能力结合在一起,可以实现比较复杂的业务逻辑. 1.1 PL/SQL块结构 PL/SQL程序都是以块(BLOCK)为单位,整个PL/SQL块分3部分:声明部分(DECLARE).执行部分(…
pl/sql组成:DDL DML DCL pl/sql特点: SQL&PL/SQL编译器集成PL/SQL,支持SQL所有范围的语法 支持CASE语句和表达式 继承和动态方法释放 类型进化.属性和方法可以添加到对象类型中,也可以从对象类型中删除,不需要重新构建类型和响应数据.这使得类型体系能够随着应用改变,不需要在开始的地方就规划好. …… 数据抽象 信息隐藏 开发和运行环境:pl/sql编译和运行系统时一项技术而不是一个独立的产品,pl/sql能够驻留在oracle数据库服务器和开发工具两个环境…
首先搞清楚俩概念 存储过程(procedure)&程序包(package) 存储过程:数据库对象之一,可以理解为数据库的子程序,在客户端和服务器端可以直接调用它.触发器是与表直接关联的特殊存储过程,是在对表记录进行操作时触发的. 优点 存储过程在服务器端运行,执行速度快. 存储过程执行一次后,代码就驻留在高速缓存,以后的操作只需从高速缓存中调用已编译的代码执行,提高了系统性能. 确保数据库的安全.可以不授权用户直接访问应用程序中的一些表,而是授权用户执行访问这些表的存储过程.非授权的用户除非通过…
SQL常用函数说明以及使用 以下补充以下常用的函数,更多的请看oracle函数API文档 to_char to_char(8.58,'9.99') to_char(8.50,'9.00') to_char(8.50,'9.99') create table employee( id number, crete_date date timestamp default localtimestamp --毫秒级时间戳,插入一条数据会自动填写 ); to_date --将2019-5-11字符串转为da…
SQL操作符 算术操作符:+加,-减,*乘,/除 比较操作符: <,>,=,!=,<>,<=,>= 常用的判断,<>和!=相同 between $lower_val$ and $hight_val$ between .. and.. 包括两端 --查询20<=age<=21的学生数据 select * from student where age between 20 and 21 not between $lower_val$ and $hig…
系统内置函数 数学运算函数 字符串函数 统计函数 日期函数 用户定义函数:存储在数据库中的代码块,可以把值返回到调用程序.调用时如同系统函数一样 参数模式 IN模式:表示该参数时输入给函数的参数 OUT模式:表示该参数在函数中被赋值,可以传给函数调用程序 IN OUT模式:表示该参数既可以传值也可以被赋值 创建函数 CREATE[OR REPLACE]FOUNCTION<函数名> ( <参数名1>,<参数类型><数据类型>, <参数名2>,<…
1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据:建立.修改和删除数据对象:控制对数据和数据对象的读写:保证数据库一致性和完整性. 易于移植性. 1.2 SQL语言的分类 数据查询语言(DQL),主要是SELECT语句. 数据操纵语言(DML),主要包括INSERT.UPDATE.DELETE. 事务控制语言(TCL),主要包括COMMIT.RO…
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  …
转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息. Oracle中的数据字典有静态和动态之分.静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的…
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条语句的最后执行 select * from emp; 相关:1)列可起别名,有三种方式:<1>直接列名后下个单词; select job j from emp; <2>列名后双引号添加别名 select job "j" from emp; <3>列名后加…
Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster…
--ORACLE PATCH 版本的查询 PL/SQL SELECT DD.PATCH_NAME,        PP.CREATION_DATE,        PP.DRIVER_FILE_NAME,        LANG.LANGUAGE  FROM AD_PATCH_DRIVERS PP,        AD_APPLIED_PATCHES DD,        AD_PATCH_DRIVER_LANGS LANG WHERE PP.APPLIED_PATCH_ID = DD.APPL…
Oracle 安装.PL/SQL 配置使用  前言:因更换机械硬盘为 SSD 固态硬盘装了新 Windows 7 系统,需要重新搭建开发环境,把 Oracle 安装过程和 PL/SQL 配置使用做下笔记. 一.原始文件 win32_11gR2.zip PLSQL Developer 11.0.0.1762 中文绿色注册版.zip (网上可以下载这两个文件) Oracle 官网: https://www.oracle.com/technetwork/database/enterprise-edit…
PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言. PL/SQL 是对 SQL 的扩展. 支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构. 可用于创建存储过程.函数.触发器和程序包,给SQL语句的执行添加程序逻辑. 作用: 如果出现需要插入1000条数据,这些数据带有某种规律性,就可以通过PL/SQL进行增加数据的操作 优点: 支持 SQL,在 PL/SQL 中可以使用: 数据操纵命令:DML,D…
触发器是存放在数据库中的一种特殊类型的子程序.不能被用户直接调用,而是当特定事件或操作发生时由系统自己主动 调用执行.触发器不能接受參数.所以执行触发器就叫做触发或点火.Oracle事件指的是数据库的表进行的insert .update.delete操作或对视图进行类似的操作. 触发器是很多关系数据库系统都提供的一项技术.在Oracle系统里,触发器类似过程和函数,都有声明,运行和异常 处理过程的PL/SQL块. 触发器的组成: 触发事件:在何种情况下触发:比如:INSERT , UPDATE…
       SQL(Structure Query Language)的含义是结构化查询语句,最早由Boyce和Chambedin在1974年提出,称为SEQUEL语言.1976年,IBM公司的San Jose研究所在研制关系数据库管理系统System R时修改为SEQUEL2,即目前的SQL语言.1976年,SQL开始在商品化关系数据库管理系统中应用.1982年美国国家标准化组织ANSI确认SQL为数据库系统的工业标准.目前,许多关系型数据库供应商都在自己的数据库中支持SQL语言,如:Acc…
PL/SQL子程序 它包含了函数和过程.此功能是指用户定义的函数.和系统功能是不同的.子程序通常完成特定的功能PL/SQL座.,能够被不同的应用程序多次调用.Oracle提供能够把PL/SQL程序存储在数据库中,并能够再不论什么地方来执行它. 这样就叫做存储过程或者是函数. 过程和函数的唯一差别就是函数总是向调用者返回数据.而过程则不返回数据. 函数 假设用户要常常运行某些操作,而且须要返回特定的数据.那么就能够将这些操作构造成一个函数. 能够使用SQL语句定义函数. 基本的语法: create…
PL/SQL高级应用 动态SQL 在PL/SQL中,不能直接执行DDL(create,alter,drop),得使用动态SQL,当然,除了DDL,动态SQL也可以执行DML(select,insert,update,delete) 语法: EXECUTE IMMEDIATE '动态SQL语句' [INTO define_variable_list] [USING bind_argument_list]; 例子: --创建一个表 declare v_sql string(200); begin v…
PL/SQL 异常和goto语句 异常 预定义异常 oracle常见预定义异常: 错误号 异常错误信息名称 说明 ORA-0001 DUP_VAL_ON_INDEX 试图破坏一个唯一性限制 ORA-0051 TIMEOUT_ON_RESOURCE(少用) 在等待资源时发生超时 ORA-0061 TRANSACTION_BACKED_OUT(少用) 由于发生死锁事务被撤消 ORA-1001 INVALID_CURSOR 试图使用一个未打开的游标 ORA-1012 NOT_LOGGED_ON(少用)…
目录 1.常用sqlplus命令 1.1 HELP命令 1.2 describe命令 1.3 SPOOL命令 1.4 其他常用命令 1.4.1 define命令 1.4.2 show命令 1.4.3 edit命令 1.4.4 save命令 1.4.5 get命令 1.4.6 start和@命令 2.格式化查询结果 2.1 COLUMN命令 2.1.1 FORMAT命令 2.1.2 HEADING选项 2.1.3 NULL选项 2.1.4 ON|OFF选项 2.1.5 WRAPPED/WORD_W…
目录 1.SQL*PLUS与数据库的交互 2.设置sql*plus运行环境 2.1 set命令简介 2.2 使用set命令设置运行环境 2.2.1 pagesize变量 2.2.2 NEWPAGE变量 2.2.3 linesize变量 2.2.4 PAUSE变量 2.2.5 NUMFORMAT变量 本系列是作为学习笔记,用于记录学习过程,加深学习印象,以及自己重新回顾学习内容只用,参考书籍为<oracle 11g从入门到精通(第二版)>,如果需要深入学习,请购买原书籍,谢谢! 1.SQL*PL…
1. 常规SQL语句优化 1.1 建议不用“*”来代替所有列名 SELECT语句中可以用“*“来列出某个表的所有列名,但是这样的写法对Oracle系统来说会存在解析的动态问题.Oracle系统会通过查询数据字典来将”*“转换成表的所有列 名,这自然会消耗系统时间. 1.2 用TRUNCATE代替DELETE 当使用DELETE删除表中的数据行时,Oracle会使用撤消表空间(UNDO tablespace)来存放恢复信息.而TRUNCATE则不会.语法: truncate [table|clus…
复习内容: PL/SQL的基本语法.记录类型.流程控制.游标的使用. 异常处理机制.存储函数/存储过程.触发器. 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结果,在写PL/SQL程序前都在先运行这一句:set serveroutput on结构:declare--声明变量.类型.游标begin--程序的执行部分(类似于java里的main()方法)exception--针对begin块中出现的异常,提供处理的机制--when...then...--whe…
--goto跳转语句 --在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句 begin dbms_output.put_line('goto开始了'); goto c; --不被执行 dbms_output.put_line('goto'); dbms_output.put_line('goto'); dbms_output.put_line('goto'); dbms_output.put_line('goto'); <<a>> dbms_output.put_li…