(本文章内容仅在windows10下经测试能够运行,不能保证其他环境下的可靠性)
PL/SQL语言概念:PL/SQL编程语言是对SQL的扩展,使SQL具有过程化编程的特性,比一般的过程化编程语言更灵活高效,主要用来编写存储过程和存储函数。
使用PL/SQL的简单案例代码如下:
--语法 declare...begin...end; --在declare与begin间声明变量,在begin和end间书写语句 declare --声明变量和引用型变量 --语法1 变量名 数据类型; --语法2 变量名 表名.列名%type; --赋值 --语法一 变量名 := 值; i number(2) := 12; i2 number(4); s varchar2(10) := ‘沃兹‘; ena emp.ename%type; --声明记录型变量 --语法 变量名 表名%rowtype; emp1 emp%rowtype; begin --输出 --语法 dbms_output.put_line(值/变量||值/变量||...); dbms_output.put_line(i); dbms_output.put_line(s); --赋值 --语法二 在begin...end间使用select 字段列表 into 变量名 from 表名 where 条件...; select emp.empno into i2 from emp where ename = ‘SCOTT‘; dbms_output.put_line(i2); select emp.ename into ena from emp where empno = 7521; dbms_output.put_line(ena); select * into emp1 from emp where ename = ‘ALLEN‘; --取记录型变量的列 --语法 变量名.列名; dbms_output.put_line(emp1.ename ||‘的工资是‘||emp1.sal); end;
声明PL/SQL语句
语法:declare...begin...end;在declare与begin间声明变量,在begin和end间书写语句
示例代码如下:
declare i number(2) := 12; i2 number(4); s varchar2(10) := ‘沃兹‘; ena emp.ename%type; emp1 emp%rowtype; begin dbms_output.put_line(i); dbms_output.put_line(s); select emp.empno into i2 from emp where ename = ‘SCOTT‘; dbms_output.put_line(i2); select emp.ename into ena from emp where empno = 7521; dbms_output.put_line(ena); select * into emp1 from emp where ename = ‘ALLEN‘; dbms_output.put_line(emp1.ename ||‘的工资是‘||emp1.sal); end;
声明变量和引用型变量
语法1: 变量名 数据类型;
语法2: 变量名 表名.列名%type;
示例代码如下:
s varchar2(10) := ‘沃兹‘; ena emp.ename%type;
声明记录型变量
语法:变量名 表名%rowtype;
示例代码如下:
emp1 emp%rowtype;
赋值
语法一: 变量名 := 值;
语法二 :在begin...end间使用select 字段列表 into 变量名 from 表名 where 条件...;
实例代码如下
declare --赋值 --语法一 变量名 := 值; i number(2) := 12; begin --赋值 --语法二 在begin...end间使用select 字段列表 into 变量名 from 表名 where 条件...; select emp.empno into i2 from emp where ename = ‘SCOTT‘; end;
输出
语法: dbms_output.put_line(值/变量||值/变量||...);
示例代码如下:
begin --输出 --语法 dbms_output.put_line(值/变量||值/变量||...); dbms_output.put_line(i); end;
取记录型变量的值
语法:变量名.列名
示例代码如下:
begin --取记录型变量的列 --语法 变量名.列名; dbms_output.put_line(emp1.ename ||‘的工资是‘||emp1.sal); end;