前言
本文简单记录下oracle数据库中,如何用plsql编程、以及存储过程的创建和使用。
相关的概念我就不列举了,大家不清楚的可以自行搜索,本篇主要列举实际的sql语法。
那plsql编程,大家可以使用windows的命令行,也可以使用工具进行编写调试,我这边主要使用Oracle Sql Developer来举例。
1 plsql编程
1.1 程序结构
首先说说plsql的程序,可以分为3个部分:声明部分、可执行部分、异常处理部分。其中declare部分用来声明变量或者游标(结果集类型变量),如果程序中没有变量声明则可以省略。
DECLARE
--声明变量、游标
-- 相当于java中的 public class A{}
BEGIN
--执行部分,相当于java中的main方法
--可以进行异常处理
dbms_output.put_line('hello world');
END;
这段程序中,dbms_output是oracle的内置程序包,相当于java中的System.out,而put_line()是调用的方法,相当于println()方法。执行结果为:
那如果是在命令行执行这段程序,则需要在执行程序之前,打开控制台的输出,并在结尾加“/”标识程序已结束,然后回车即可看到打印的结果。
1.2 变量
在plsql中,常见的变量分为两大类:
1、普通数据类型(char,varchar2,date,number,boolean,long);
2、特殊变量类型(引用型变量、记录型变量);
变量的声明方式为:变量名 变量类型(变量长度) 例如:v_name varchar2(20)
1.2.1 普通变量
普通变量的赋值方式有两种:
1)使用“:=”直接赋值,比如:v_name :=‘zhangsan’
2)语句赋值,语法为:select 值 into 变量名
-- 声明一个人的信息,姓名、薪水、地址
DECLARE
-- 姓名
v_name VARCHAR2(50) := 'zhangsan';
-- 薪水
v_sal NUMBER;
-- 地址
v_addr VARCHAR2(200);
begin
-- 直接赋值
v_sal := 10000;
-- 语句赋值
select '中国' into v_addr from dual;
-- 打印变量
DBMS_OUTPUT.PUT_LINE('姓名:' || v_name || '薪水:' || v_sal || '地址:' || v_addr);
end;
执行结果为:
1.2.2 引用型变量
变量的类型和长度取决于表中字段的类型和长度;
通过表名.列名%type指定变量的类型和长度,例如:v_name emp.ename%type;
引用型变量的好处:
使用普通变量定义方式,需要知道表中列的类型,而使用引用类型,不需要考虑列的类型,使用%type是非常好的编程风格,因为它使得plsql更加灵活,更加适应于对数据库定义的更新。
建表语句