Oracle PL/SQL 学习笔记:从菜鸟到进阶
需积分: 50 128 浏览量
更新于2024-09-16
收藏 86KB DOCX 举报
"Oracle PL/SQL菜鸟学习笔记"
Oracle PL/SQL是一种用于Oracle数据库的编程语言,结合了SQL的查询能力与过程式编程的灵活性。这篇学习笔记主要涵盖了PL/SQL的基础概念,包括创建存储过程、带参数的过程、错误检查、块结构、变量命名规则以及函数和包的创建。
1. 创建存储过程:
存储过程是一组预先编译的SQL语句,可以在需要时重复调用。例如:
```sql
CREATE OR REPLACE PROCEDURE my_plis
BEGIN
// 执行部分
END;
/
```
这将创建一个名为`my_plis`的简单存储过程。
2. 带参数的存储过程:
可以为存储过程传递参数,如下所示:
```sql
CREATE PROCEDURE sp_test2 (spname VARCHAR2, newclassid NUMBER)
IS
BEGIN
UPDATE student SET classid = newclassid WHERE studentname = spname;
END;
/
```
这里的`sp_test2`接受两个参数:`spname`和`newclassid`,用于更新学生班级ID。
3. 错误检查:
使用`SHOW ERROR`命令查看存储过程中的错误:
```sql
SHOW ERROR -- 查看错误
```
4. 调用存储过程:
有两种方式调用存储过程:`EXEC`或`CALL`:
```sql
EXEC 过程名(参数值1, ...);
CALL 过程名(参数值1, ...);
```
5. 命名规范:
遵循一定的命名约定,如:
- 变量:`v_变量名`;
- 常量:`c_常量名`;
- 游标:`名字_cursor`;
- 例外:`e_名字`;
6. 块结构:
PL/SQL的代码块由以下几个部分组成:
- `SET SERVEROUTPUT ON`:打开输出;
- `DECLARE`:声明部分,定义变量(可选);
- `BEGIN`:执行部分(必需);
- `EXCEPTION`:异常处理;
- `END`:结束;
例如:
```sql
BEGIN
DBMS_OUTPUT.PUT_LINE('hello');
END;
/
```
7. 变量命名规则:
- 变量名称可以包含字母、数字和特殊符号,但必须以字母开头;
- 不区分大小写;
- 最大长度为30个字符;
- 不能有空格;
- 示例:
```sql
DECLARE
v_student VARCHAR2(20);
BEGIN
SELECT studentname INTO v_student FROM student WHERE xh = '&xh';
DBMS_OUTPUT.PUT_LINE('姓名:' || v_student);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('查无此人'); -- 异常处理
END;
/
```
8. 创建函数:
函数类似于存储过程,但返回一个值。例如:
```sql
CREATE FUNCTION sp_fun1 (spname VARCHAR2) RETURN NUMBER IS
s_age NUMBER(3);
BEGIN
SELECT age + 1 INTO s_age FROM student WHERE studentname = spname;
RETURN s_age;
END;
```
这个函数`sp_fun1`接收一个参数`spname`,并返回一个加1后的年龄值。
9. 调用函数:
使用`EXEC`和`INTO`关键字调用函数并将结果赋值给变量:
```sql
VAR result NUMBER;
EXEC sp_fun1('张三') INTO :result;
```
10. 创建包:
包是封装相关过程和函数的集合,有助于代码组织:
```sql
CREATE PACKAGE sp_package
AS
PROCEDURE my_procedure;
FUNCTION my_function RETURN NUMBER;
END;
/
CREATE PACKAGE BODY sp_package
AS
PROCEDURE my_procedure
IS
BEGIN
-- 实现
END;
FUNCTION my_function RETURN NUMBER
IS
f_result NUMBER;
BEGIN
-- 实现
RETURN f_result;
END;
END;
/
```
这样就创建了一个包含过程`my_procedure`和函数`my_function`的包`sp_package`。
以上就是Oracle PL/SQL的基本概念和操作,对于初学者来说,理解这些概念是进一步深入学习的关键。
2018-03-02 上传
2012-03-05 上传
2018-04-20 上传
2013-12-20 上传
2011-04-13 上传
2019-11-17 上传
2016-05-24 上传
2014-09-14 上传
aashuguang
- 粉丝: 0
- 资源: 2
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍