Oracle PL/SQL 学习笔记:从菜鸟到进阶
需积分: 50 161 浏览量
更新于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的基本概念和操作,对于初学者来说,理解这些概念是进一步深入学习的关键。
314 浏览量
151 浏览量
111 浏览量
115 浏览量
318 浏览量
197 浏览量
107 浏览量
237 浏览量

aashuguang
- 粉丝: 0
最新资源
- J2EE培训:企业级软件开发深度解析
- 探索Ruby编程语言:资源、进阶与社区指南
- Symbian:移动办公的微核操作系统研究与环境配置详解
- 互联网搜索引擎:原理、技术与系统详解
- JSP+Tomcat基础配置与环境搭建详解
- CoreJava基础教程:从入门到精通
- 构建机票预定系统:需求与服务器功能分析
- Linux内核0.11完全解析
- 掌握数据流图绘制关键:基本符号与应用实例
- Struts1.2深度解析:核心标签库与架构详解
- Struts框架详解:构建高效Web应用
- UML使用案例驱动的对象建模:理论与实践
- Matlab实现的差分2DPSK调制解调系统仿真设计
- 2008版《Illustrated C#》:精通.NET框架与C#编程全览
- JBPM工作流开发实战指南
- C++Builder6实战指南:从基础到高级技术探索