Oracle PL/SQL 学习笔记:从菜鸟到进阶
需积分: 50 109 浏览量
更新于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的基本概念和操作,对于初学者来说,理解这些概念是进一步深入学习的关键。
2013-12-20 上传
2011-04-13 上传
2019-11-17 上传
2011-01-26 上传
2017-11-06 上传
2018-11-05 上传
aashuguang
- 粉丝: 0
- 资源: 2
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍