PL/SQL笔记(一)】的更多相关文章

由于公司中使用 oracle,而本人对存储过程一直也懵懵懂懂,故一周时间学习了一遍 pl/sql,在此记下笔记!!! 一.前提,pl/sql 是啥? 1.PL/SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问. 2.由于该语言集成于数据库服务器中, 所以PL/SQL代码可以对数据进行快速高效的处理. 3.PL/SQL 是 ORACLE 系统的核心语言,现在 ORACLE 的许多部件都是由 PL/SQL 写成. 4.在 PL/SQL 中只能用 SQL 语句…
loop then .. exit; end if; end loop; select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual; select cast(sysdate as timestamp) from dual; 复合类型数据 1.记录: declare type emp_record_type is record ( r_name emp.ename%type, r_job emp.job%type ); emp_recor…
一.存储过程.存储函数   1.What's This? ①.ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它.这样就叫存储过程或函数. ②.存储过程.存储函数的唯一区别是存储函数有返回值,而存储过程没有返回值.   2.创建存储函数 eg.根据部门号返回部门总工资 CREATE OR REPLACE FUNCTION get_salary( dep_id , -- 输入参数, 可以设置默认值 emp_count OUT NUMBER -- 输出参数 ) RE…
PL/SQL概述 PL/SQL是一种高级的数据库程序设计语言,专门使用与Oracle语言基于数据库的服务器的内部,所以PL/SQL代码可以对数据库进行快速的处理. 1.什么是PL/SQL? PL/SQL包含过程化语句和SQl语句,他是对于SQL语言的一个补充,他将SQL语言通过过程化的结构融合在一起. 2.PL/SQL的优点? (1)基于数据库的内部,所有速度是很快的,有利于提高性能 开发过程的时候,将PL/SQL块直接放在应用程序中,PL/SQL将整个语句发生给服务器,这个过程在单次执行的时候…
流程控制 1.If,then,else,elsif(不是elseif) ' then null; endif; 2.Case 简单case表达式: 搜索型Case表达式: 3.goto语句 begin if true then goto label2; end if; <<label1>> SYS.DBMS_OUTPUT.PUT_LINE('label1'); <<label2>> SYS.DBMS_OUTPUT.PUT_LINE('label2'); en…
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家批评指正. PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言. PL---Procedural Language. SQL—Structure QueryLanguage.PL/SQL包括过程化语句和SQL语句     PL/SQL的单位:块. 一个块中可以嵌套…
ORALCE  PL/SQL学习笔记 详情见自己电脑的备份数据资料…
我相信你是被百倍性能的字样吸引了,不过我所想侧重的是优化的思路,这个比优化技巧更重要,而结果嘛,其实我不希望说成是百倍提升,“”自黑“”一下. 有一个真实想法和大家讨论一下,就是一个SQL语句如果原本运行20秒,优化到了1秒,性能提升该说是20倍还是提高了95%.当然还见过一种说法,一条SQL语句每次运行20秒,每天运行100次,优化后每次运行1秒,运行还是100次,那么性能提升是说成优化累计时间为100*20-100=1990秒? 好了,我们来看看PL/SQL的优化,前期自己分析了一些信息,可…
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程序前都在先运行这一句:set serveroutput on结构:declare--声明变量.类型.游标begin--程序的执行部分(类似于java里的main()方法)exception--针对begin块中出现的异常,提供处理的机制--when...then...--whe…
1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle的pl/sql的概念    2.掌握pl/sql编程技术(过程.函数.触发器)    pl/sql是标准sql语句的扩展    简介        1.过程.函数.触发器都是由pl/sql编写        2.过程.函数.触发器是在oracle中        3.pl/sql是非常强大的过程语言  …
PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构,可用于创建存储过程.触发器和程序包,给SQL语句的执行添加程序逻辑,与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性.灵活性和安全性.   PL/SQL 的优点 支持 SQL,在 PL/SQL 中可以使用: 1.数据操纵命令 2.事务控制命令 3.游标控制…
-- 1. 使用一个变量 declare -- Local variables here v_name ); begin -- Test statements here select t.user_name into v_name from pay_mer_order t ; dbms_output.put_line(v_name); end; -- 2. 使用多个变量 declare -- Local variables here v_name ); v_trans_no ); v_app_c…
  1>>>>>异常错误处理 1 >预定义的异常处理 预定义说明的部分 ORACLE 异常错误对这种异常情况的处理,只需在PL/SQL块的异常处理部分,直接引用相应的异常情况名,并对其完成相应的异常错误处理即可.例1:更新指定员工工资,如工资小于1500,则加100: DECLARE v_empno employees.employee_id%TYPE := &empno; v_sal employees.salary%TYPE;BEGIN SELECT sal…
1 第一个PL/SQL的程序 DECLARE BEGIN DBMS_OUTPUT.PUT_LINE('Hello World!'); END; / --2一个简单的PL/SQL程序 DECLARE v_num NUMBER; BEGIN v_num:; dbms_output.put_line('v_num变量内容是:'||v_num); END; / --3输入 一个员工编号,而后取得员工姓名 DECLARE v_eno NUMBER:=&ID; v_ename ); BEGIN SELECT…
--基本结构DECLARE--变量声明部分:在此声明PL/SQL用到的变量,类型,游标,以及局部的存储过程和函数BEGIN --执行部分:过程及SQL语句,即程序的主要部分 EXCEPTION --执行异常部分:异常处理END;--PL/SQL基本规范:全部的保留字,roacle的内置函数,程序包以及用户自定义的数据类型都用大写--PL/SQL基本规范::每行只写一条语句,逗号后以及运算符的前后都应加空格--PL/SQL基本规范::要使用有意义的名称命名:--PL/SQL基本规范:使用"_&qu…
PL/SQL: 知识回顾: SQL:  结构化查询语言: T-SQL:  microsoft sql语言: PL/SQL: Oracle sql语言: 变量命名规则: 1.首字母必须是字母,可以包含字母,下划线,$,#,数字 2.字符长度在30内 3.不能为关键字,保留字 命名规范: 1.见名知意:       见书hibernate   p78: 2.普通变量: v_变量名 3.游标变量: cursor_变量名: 4.参数变量:p_变量名: 数据类型: 标量类型  timestamp:时间戳…
--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…
PL/SQL是没命名的存储过程,函数,触发器,PL/SQL块的语法格式如下: [declare] --声明部分,可选 begin --执行部分,必须 [exception] --异常处理部分,可选 end PL/SQL块每条语句必须用分号结束,单行注释--,多行注释/*...*/,下面是一个PL/SQL块例子 set serveroutput on declare --声明变量 a int :=  1; --声明并且赋值 address varchar2(128); mobilephone va…
1.PL/SQL错误类型 错误类型 报告者 处理方法 编译时错误 PL/SQL编译器 交互式地处理:编译器报告错误,你必须更正这些错误 运行时错误 PL/SQL运行时引擎 程序化地处理:异常由异常处理子程序引发并进行捕获 2.异常的声明 有两种异常:用户自定义异常和预定义异常 用户自定义异常就是由程序员自己定义的一个错误.该错误还不是非常重要,所以并没有将整个错误包含在Oracle的错误中.例如,它可能是一个与数据有关的错误.而预定义异常则对应于一般的SQL和PL/SQL错误. 用户自定义异常是…
触发器是存放在数据库中的一种特殊类型的子程序.不能被用户直接调用,而是当特定事件或操作发生时由系统自己主动 调用执行.触发器不能接受參数.所以执行触发器就叫做触发或点火.Oracle事件指的是数据库的表进行的insert .update.delete操作或对视图进行类似的操作. 触发器是很多关系数据库系统都提供的一项技术.在Oracle系统里,触发器类似过程和函数,都有声明,运行和异常 处理过程的PL/SQL块. 触发器的组成: 触发事件:在何种情况下触发:比如:INSERT , UPDATE…
程序异常是在操作期间正常,出现在节目的准备过程是不可避免的例外.但是,必须有一个相应的异常处理机 制,以保证程序的正常运行.PL/SQL程序运行过程中出现的错误.称为异常. 一个优秀的程序都应该可以正确处理 各种出错的情况.并尽可能的从错误中恢复. PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常运行过程中未预料的事件,程序块的异常处理定义的错误和自己定义的错误, 因为PL/SQL程序块一旦产生异常而没有指出怎样处理时,程序就会异常的终止. 有三种类型的错误…
注释 单行--多行 一.declare一般用于做变量的申明.begin 程序体开始执行  end; 程序体结束exception .. dbms_output.put_line('绝对值'||v_abs);输出语句 执行begin 之前必须先set serveroutput on;要不打印不出来 pl/sql约定俗成变量以v开头如 v_name  example:declare v_name varchar2(20)    -----变量类型为变长字符begin v_name:='myname'…
PL/SQL语句可以在Oracle客户端的 SQL窗口或者 command  窗口中运行 在SQL窗口中运行步骤同 SQL语句 在command  窗口中运行的步骤如下: 1)File—new command window,出现下图 2)输入命令:set serveroutput on    ,回车执行 作用:开启输出服务 3)输入命令:ed   ,回车执行 作用:打开PL/SQL文本编辑器,可以在此文本编辑器中写PL/SQL语句 4)输入命令:/   ,回车执行 作用:执行PL/SQL语句 1…
       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介绍 1.概念 PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL可以用来编写存储过程.存储函数.触发器等等. PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE... For....等控制过程的SQL. 2.学习必要性 提高程序的运行性能传统的使用程序操作数据库的方式需要获得connection…
一.控制结构 控制结构包括:判断语句(条件分支语句).循环语句.顺序控制语句三种. 1.条件分支语句 if--then:简单条件判断 --编写一个过程,可以输入一个雇员名,如果该雇员名的工资低于2000,就给该雇员工资增加10% create or replace procedure pro_addSal(v_ename varchar2) is --定义变量 v_sal emp.sal%type; begin select sal into v_sal from emp where ename…
一.在PL\SQL语句块begin...end;中,不能直接使用select,必须与into结合查询. 例如: declare aa:=22; id2 integer; begin select * from tabname where id=aa : end;//提示错误该select语句中缺少into子句 正确:select count(*)into id2  from tabname where id=aa : 当然这样只能得到一条数据,如果需要多数据查询可以使用游标: 二.oracle循…
一:程序单元组成 一个PL/SQL程序单元主要包括三部分: 声明与定义部分:声明变量.常量.类型等:定义过程.函数等: 执行部分:执行PL/SQL语句:调用过程.参数:处理游标等: 异常处理部分:处理程序单元出现的异常. 二:格式 DECLARE 声明变量.常量.类型: 定义过程.函数: .... BEGIN 执行程序语句: 调用过程.函数: 处理游标: .... EXCEPTION <exception handling> END; 三:例子 DECLARE a number; b numb…
一:PL/SQL时间相关类型 PL/SQL提供两个和日期时间相关的数据类型: 日期时间(Datetime)数据类型 时间间隔类型 二:日期时间类型 datetime数据类型有: DATE TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL TIME ZONE 三:时间间隔类型 INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND 四:日期时间类型 和  时间间隔类型  的可能字段 字段名称 有效日期…