PL/SQL编程基础
DECLARE
/*
* 定义部分——定义常量、变量、复杂数据类型、游标、用户自定义异常
*/
BEGIN
/*
* 执行部分——PL/SQL语句和SQL语句
*/
EXCEPTION
/*
* 异常处理部分——处理运行错误
*/
END;
/*块结束标记 */
2. 使用变量和常量
identifier [CONSTANT] datatype [NOT NULL]
[:= | DEFAULT expr];
DECLARE
v_name varchar2(10);
BEGIN
select dname into v_name
from dept
where deptno = 90;
dbms_output.put_line('dname:'|| v_name);
EXCEPTION WHEN NO_DATA_FOUND THEN
dbms_output.put_line('没有该部门');
END;
3. PL/SQL块的类型
create or replace procedure update_sal
(p_ename VARCHAR2, p_newsal NUMBER)
AS
BEGIN
UPDATE emp SET sal = P_newsal
WHERE lower(ename) = lower(P_ename);
commit;
END;
调用:
exec update_sal(‘scott’, 2000); --SQL*PLUS中的命令
call update_sal(‘SCOTT’, 2000); --JAVA中调用的语句
create or replace function f_add(a number )
return number
as
begin
return a*2;
end;
调用:
select f_add(2) from dual;
select f_add(deptno) from dept;
create or replace package my_bao is
function f_add(a number ) return number;
end;
/
create or replace package body my_bao is
function f_add(a number ) return number
as
begin
return a*2;
end;
end;
/
调用:select my_bao.f_add(2) from dual;
declare
v_name dept.dname%type;
begin
select dept.dname into v_name
from dept
where deptno = 10;
dbms_output.put_line('dept = '||v_name);
end;
运行结果:
dept = ACCOUNTING
5. 复合变量
DECLARE
TYPE emp_record_type IS RECORD (
name emp.ename%TYPE,
salary emp.sal%TYPE);
emp emp_record_type;
BEGIN
SELECT ename,sal,job into emp
FROM emp WHERE empno=7788;
dbms_output.put_line('雇员名:' || emp .name);
END;
7. LOB变量
8. 使用SQL*Plus绑定变量
SQL> var name varchar2(10);
SQL> BEGIN
2 SELECT ename INTO :name FROM emp
3 WHERE empno = 7788;
4 end;
5 /
SQL> print name;
name
---------
SCOTT
9. PL/SQL词汇单元
当编写PL/SQL块时,每个PL/SQL块都包含多行代码,而每行代码又是由多个合法单元组成的,这些合法单元被称为词汇单元。
DECLARE
--定义v_sal变量
v_sal NUMBER(6,2);
BEGIN
/*
给变量赋值,
然后打印此变量
*/
v_sal := 1000;
dbms_output.put_line(v_sal);
END;
10.PL/SQL代码编写规则
PL/SQL编程基础的更多相关文章
- Oracle数据库编程:PL/SQL编程基础
2.PL/SQL编程基础: PL/SQL块: declare 定义部分 begin 执行部分 exception 异 ...
- 【PL/SQL编程基础】
[PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Cre ...
- PL/SQL编程基础(三):数据类型划分
数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的 ...
- Oracle Pl/SQL编程基础
Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...
- PL/SQL编程基础(五):异常处理(EXCEPTION)
异常处理 异常产生所带来的问题: 使用EXCEPTION程序块进行异常处理: 实现用户自定义异常. 使用异常可以保证在程序中出现运行时异常时程序可以正常的执行完毕: 用户可以使用自定义异常进行操作. ...
- PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)
PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/ ...
- PL/SQL编程基础——PL/SQL简介
课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...
- Oracle PL/SQL 编程基础 实例
create table mytest(name varchar(20),password varchar(30)); create or replace procedure sp_pro2 is ...
- PL/SQL编程基础(四):程序控制(IF,CASE,FOR,LOOP,WHILE LOOP,EXIT,CONTINUE)
程序控制 程序结构有分支结构与循环结构: 分支结构语法:IF.CASE: 循环结构:FOR.WHILE LOOP:先执行再判断,至少执行一次: WHILE LOOP:先判断再执行,如果不满足条件,就不 ...
- PL/SQL编程基础(二):变量的声明、赋值、(赋值、连接、关系、逻辑)运算符
变量的声明.赋值.运算符 1.声明并使用变量 变量可以在声明时赋值,也可以先定义后赋值: 使用%TYPE与%ROWTYPE可以根据已有类型定义变量. PL/SQL是一种强类型的编程语言,所有的变量都必 ...
随机推荐
- 【6.24校内test】T1 江城唱晚
[题目背景] 墙角那株海棠,是你种下的思念. 生死不能忘,高烛照容颜. 一曲江城唱晚,重忆当年坐灯前, 青衫中绣着你留下的线. ——银临<江城唱晚> [问题描述] 扶苏是个喜欢一边听古风歌 ...
- case when里的like功能 ////// 截取(substr)
case when里的like功能 假如要用到case when又要用到like这样的功能,即如果字符串包含‘语文’就怎么怎么样,包含‘数学’就怎么怎么样,包含‘英语’就怎么怎么样,like是用于wh ...
- How To:分析ORACLE监听日志中的IP信息
有时候需要分析出ORACLE日志监听中的IP信息,分享一个组合命令,Linux的shell下运行正常. grep "HOST=.*establish.*\* 0" listener ...
- 第二章 设计高质量的React组件
第二章 设计高质量的React组件 高质量React组件的原则和方法: 划分组件边界的原则: React组件的数据种类: React组件的生命周期. 2.1 易于维护组件的设计要素 1.高内聚:指的是 ...
- angular中处理多个异步请求的方法汇总
在实际业务中经常需要等待几个请求完成后再进行下一步操作.但angularjs中$http不支持同步的请求. 解决方法一: $http多层嵌套 $http.get('url1').success(fun ...
- STM32 内存管理实验
参考原文<STM32F1开发指南> 内存管理简介 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.最主要的目的是如何高效.快速的分配,并且在适当的时候释放和回收内存资源.内存管 ...
- [fw]Best Practices for Exception Handling
http://www.onjava.com/pub/a/onjava/2003/11/19/exceptions.html http://www.onjava.com/pub/a/onjava/200 ...
- 最小生成树 D - Constructing Roads
There are N villages, which are numbered from 1 to N, and you should build some roads such that ever ...
- WinForm 中限制只能输入数字
在Winform(C#)中要实现限制Textbox只能输入数字,一般的做法就是在按键事件中处理,判断keychar的值.限制只能输入数字,小数点,Backspace,del这几个键.数字0~9所对应的 ...
- [bzoj 2190][SDOI2008]仪仗队(线性筛欧拉函数)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2190 分析:就是要线性筛出欧拉函数... 直接贴代码了: memset(ans,,sizeof ...