Oracle的PL/SQL编程
PL/SQL编程
基本语言风格
PL/SQL把SQL的数据操作功能同过程语言的数据处理功能结合起来。
--声明作用 declare --变量、游标、用户自定义类型、异常 variables,cursors,user_defined,exceptione --程序开始 begin -SQL statements -PL/SQL statements --异常处理 EXCEPTION Actions to perform when errors occur --程序结束标志 end; |
1. 构成PL/SQL的基本单元:过程,函数,其他模块
2. 变量声明和异常处理是可选项,程序过程是必须的
字符集和注释
字符集包括:
1、所有大小写字母
2、0~9的数字
3、(){} +、-、*、%等一些特殊字符
4、空格符、制表符、回车符
单行注释:
--声明作用 declare --变量、游标、用户自定义类型、异常 variables,cursors,user_defined,exceptione --程序开始 begin -SQL statements -PL/SQL statements --异常处理 EXCEPTION Actions to perform when errors occur --程序结束标志 end; |
多行注释:不允许嵌套使用
/* declare variables,cursors,user_defined,exceptione begin -SQL statements -PL/SQL statements EXCEPTION Actions to perform when errors occur end; */ |
数据类型和转换
常用数据类型:
数字类型:Number、PLS_Integer、BINARY_Integer
字符类型:Char、Varchar2、Long、Nchar2、Nvarchar2
日期类型:Date、TimeStamp、Interval
布尔类型:Boolean
LOB类型:blob、long、raw、
类型转换
To_char():把Number和date类型转换为varchar2()类型
To_date():把char类型转换为Date类型
To_number():把char类型转换为number类型
自动类型转换:字符和数字,字符和日期
自动类型转换:Max结果是Number类型,这里就转换为varchar2类型 declare v_customer_id varchar2(10); begin select Max(CUST_ID) INTO v_customer_id from customers where CUST_FIRST_NAME='Anne'; end; 手动类型转换 declare v_customer_id varchar2(10); begin select to_char(Max(CUST_ID)) INTO v_customer_id from customers where CUST_FIRST_NAME='Anne'; end; |
变量和常量
变量就是程序读取和赋值的存储单元。
v_customer_id varchar2(10);
v_name varchar2(20);
v_date Date;
常量就是在前面加上constant修饰,并且赋值即可。
limit_connect constant numb:=50000;
运算符
算术运算符
+-正负 |
+加号 |
-减号 |
*乘号 |
/出号 |
**幂 |
关系运算符
<>不等于 |
!=不等于 |
^=不等于 |
>大于 |
<小于 |
=等于 |
其他运算符
not |
and |
or |
/**/ |
-- |
:=赋值 |
‘字符界 |
; |
流程控制
IF_THEN_ELSE语句
declare v_number sales.prod_id%type; v_comment varchar2(35); begin /*对prod_id判断*/ select max(prod_id) into v_number from sales; if v_number<500 then v_comment:='Too Small'; elsif v_number<1000 then v_comment:='Litter Bigger'; else v_comment:='That enough'; end if; end; |
CASE语句
declare v_first_name customer.customer first_name%type; v_result varchar2(20) begin --从数据库中取出要判断的值 select customer_first_name into v_first_name from customer where c_id=100; --判断v_first_name的值,获得结果 case v_first_name when 'Anne' then v_result:='IS Anne'; when 'Fire' then v_result:='IS Fire'; else v_result:='Nothing'; end CASE; end; |
FOR_LOOP语句
declare v_counter binary_integer:=1; begin for v_counter in 1..19 LOOP --满足条件要执行的SQL语句 insert into number_table(num) values (v_counter); end LOOP; END; |
WHILE_LOOP
declare v_counter binary_integer:=1; begin WHILE v_counter<20 LOOP --满足条件要执行的SQL语句 insert into number_table(num) values (v_counter); end LOOP; END; |
GOTO顺序控制
goto lable;label是指<<>>括起来的标记
declare v_counter binary_integer:=1; LOOP INSERT INTO number_table(num) values (v_counter); v_counter:=v_counter+1; --v_counter:=20的时退出去 if v_counter=20 then goto loop_end; end if; end LOOP; <<loop_end>> END; |
Oracle的PL/SQL编程相关推荐
- Oracle的PL/SQL编程前奏之基础技能实战一(匿名子程序)
Oracle的PL/SQL编程之基础技能实战一 一>基础代码检查检查以bm_开头的系统初始化编码表是否有空值.与业务系统相关的编码项不能存在空值,会导致系统业务无法办理.为初始化数据表.在做测试 ...
- Oracle之PL/SQL编程从入门到精通-文心-专题视频课程
Oracle之PL/SQL编程从入门到精通-23941人已学习 课程介绍 本课程基于Oracle数据库,讲解PL/SQLl编程方面的技能,通过本课程的学习,学员能在短的时间内掌握Ora ...
- oracle pl/sql编程详细,Oracle框架:PL/SQL编程:
PL/SQL编程 一:什么是PL/SQL (1.)PL/SQL体系结构: PL/SQL引擎用来编译和执行,PL/SQL块或子程序,该引擎驻留在Oracle服务器中. (2.)PL/SQL块简介 PL/ ...
- 10、oracle下PL/SQL编程基础
ORACLE下的PL/SQL编程基础 PL/SQL语言是程序化程序设计语言,块是PL/SQL编程中的基本结构,其优点在于支持SQL.支持面向对象编程.性能好.可移植性.与sql集成.安全性高等. 1. ...
- oracle快捷语句框架中,Oracle框架:PL/SQL编程:
PL/SQL编程 一:什么是PL/SQL (1.)PL/SQL体系结构: PL/SQL引擎用来编译和执行,PL/SQL块或子程序,该引擎驻留在Oracle服务器中. (2.)PL/SQL块简介 PL/ ...
- 基于oracle 的PL/SQL编程 -变量使用
1. 需要开启的服务: 本机安装的oracle ,默认是开机启动服务的,开机时间太慢,关闭了,需要手动打开: OracleDBConsoleorcl OracleOraDb10g_home1iSQL ...
- Oracle之pl/sql编程(一)函数,过程,包
pl/sql是什么? pl/sql是oracle在标准sql语言上的扩展.不仅允许嵌入sql语言,还可以定义常量和变量,允许使用条件语句和循环语句,允许使用例外处理各种错误. 作用:过程,函数,触发器 ...
- Oracle基础--PL/SQL编程--变量
一.PL/SQL变量概念 在Oracle中,有两种变量,一为普通变量(如char.varchar2.date.number.long等),二为特殊变量(引用型变量.记录型变量). 二.普通变量的声明 ...
- oracle if函数变量,Oracle数据库——PL/SQL编程
PL/SQL块基本结构 declare -- 声明部分 begin -- 执行部分 exception -- 异常处理部分 end; 声明部分:包含变量.常量定义,由 declare 关键字开始,如果 ...
最新文章
- nvidia:未找到命令
- ng-notadd 0.17.1 发布,基于 Angular 的企业级中后台
- ov5640帧率配置_一文看懂赛博朋克2077中低配置的设置方法和能畅玩的电脑有哪些?...
- StartService返回2的解决方法
- csdn 用户 蚂蚁翘大象_用户界面设计师房间里的大象
- 女朋友天天气我怎么办_关于我的天气很奇怪
- *【2019牛客暑期多校训练营(第三场)- G】Removing Stones(分治)
- 佳能c3320怎么设置接收方_入门级单反相机佳能800D是否值得买?在我看来价格决定一切...
- selenium+chromeheadless爬取网站
- Pandas Series
- 做人要无需,做事要务实!
- js数组的sort排序(获取中位数)
- 通过tomcat配置solr 4.10.3
- 删除华为C8650手机驱动的过程
- Android中URI
- 【操作系统】第十一章-多媒体操作系统
- A23_郭自强_网页前端1
- python中求和符号怎么打_参数siz向量的python符号求和与微分
- 2019年双十一购物数据分析报告
- flutter图片聊天泡泡_Flutter 非常丰富的消息气泡效果合集