PL/SQL概述及变量类型

--打印Hello World

declare(没有说明部分的话可以不写,程序以begin开始,以end;结束)

--说明部分(变量,光标或者例外)

begin

--程序体

dbms_output.put_line('Hello World');--(程序包)

end;

/ --退出编辑环境并且执行PL/SQL程序,前提是没有语法错误

--打开输出开关

set serveroutput on 

/--退出...

Hello World

借助图形化工具编写PLSQL程序 Oracle SQL Developer

--查看程序包的结构

desc dbms_output;

PL/SQL 全称 Produce Language/SQL 过程语言的SQL

PLSQL是Oracle对sql语言的过程化扩展(面向过程的语言) 

--指在SQL命令语言中增加了过程处理语句(分支,循环),是SQL语言具有过程处理的能力

传统的update语言是命令式语言。

SQL语言               +                过程语言                     面向过程,简单,高效,灵活,实用

数据操纵能力                          数据处理能力

不同数据库的SQL扩展

Oracle:PL/SQL         DB2:SQL/PL         SQL Server:Transac-SQL(T-SQL)       MySQL:limit

PL/SQL的程序结构

declare 说明部分(变量说明,光标说明,例外说明)

begin 语句序列(DML语句)

exception 例外处理语句

end;

*定义基本变量 类型 char varchar2 number date boolean long  赋值形式:boolean :=true

一个较为完整的例子:

declare

pnumber number(7,2);

pname varchar2(20);

pdate date;

begin

pnumber:=1;

dbms_output.put_line(pnumber);

pname:='tom';

dbms_output.put_line(pname);

pdate:=sysdate;

dbms_output.put_line(pdate);

--计算明天的日期

dbms_output.put_line(pdate+1);

end;

/

引用型变量

举例:my_name emp.ename%type; 引用emp表中的ename字段的类型

需求:查询员工号为1的员工姓名和薪水

declare

pename emp.ename%type;

psal emp.salary%type;

begin

--得到1的姓名,薪水,变量的顺序和查询语句顺序对应

select ename,sal into pename,psal from emp where empno=1;

--打印姓名和薪水

dbms_output.put_line(pename||'的薪水是'||psal);

end;

/

记录型变量

举例:emp_rec emp%rowtype;

记录型变量分量的引用

举例:emp_rec.ename:=‘ADAMS’;

--使用记录型变量完成同样需求

set serveroutput on

declare

--定义记录型变量:注意代表一行

emp.rec emp%rowtype;

begin

--得到1这一行的信息

select *  into emp_rec from emp where empno=1;

--打印姓名和薪水

dbms_output.put_line(emp_rec.ename||'的薪水是'||emp_rec.sal);

end;

/

猜你喜欢

转载自blog.csdn.net/little_____white/article/details/81390093