最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Oracle开发:什么是PL/SQL?

XAMPP新闻 admin 37浏览 0评论

drg000033

什么是PL/SQL

PL/SQL是ORACLE系统的核心语言,简单的理解是:Oracle开发就是PL/SQL的编程

PL/SQL与标准SQL的关系:

  • PL/SQL只能使用这些SQL关键字:
    • INSERT 添加
    • UPDATE 修改
    • DELETE 删除
    • SELECT INTO 查询后插入
    • COMMIT 事务提交
    • ROLLBACK 事务回滚
    • SAVEPOINT  事务保存点
  • PL/SQL在标准SQL之上扩展了Oracle存储过程等语言内容,并可以嵌入到C、java等语言执行

PL/SQL的基本语法结构

 DECLARE  
     -- 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及存储过程和存储函数
 BEGIN
     -- 执行部分:  过程及SQL 语句, 即程序的正文部分
 EXCEPTION
     -- 执行异常处理
 END;
 /   -- 表示编写结束,退出编辑环境,此时可以立即执行,并查看最终效果

基本变量

常用的变量类型:

  • char :定长字符串
  • varchar2 :变长字符串
  • date :日期
  • number :数值
  • boolean :布尔类型
  • long :大文本

变量的声明:

 变量名 数据类型 := 默认值;

注意:必须在PL/SQL结构里面写

变量的输出:

 set serveroutput on                         -- 允许在数据库端(控制台)看到输出内容
 dbms_output.put_line('输出的内容:'||变量名);  -- ||是连接符(拼接输出的内容)

例:变量pi的用法

set serveroutput on                 --输出设置
 declare                             --变量声明
   pi number :=10;                   --赋值语句 :=
 begin                               --正文开始
   dbms_output.put_line('输出的内容'); --输出显示内容
   dbms_output.put_line('pi='||pi);  --注意需要使用||连接符连接变量
 end;                                --要用end结尾
 /                                   --表示结束,退出编辑环境

注意:变量的命名规则

  • 标识符名不能超过30字符;
  • 第一个字符必须为字母
  • 不分大小写
  • 不能用 ’-‘ (减号)
  • 不能是SQL保留字

引用型变量

可以方便的保存数据库的字段值。当数据库字段类型发生改变时,代码不需要改动,始终与数据库字段类型保持一致

格式:

 变量名  表名.列名%type;

例:声明变量pname,它与emp表的ename列的类型一致

 pname emp.ename%type;
数组变量

保存一组连续的数据

格式:

 -- 先定义数组类型,再声明变量
 type 类型名 is varray(长度) of 数据类型;  
 变量名 类型名;

例:定义存放5个字符串类型的数组

-- 定义:Array_A1 数据类型
type Array_A1 is varray(5) of varchar2(20);
 
-- 声明:变量 arr1 (它的数据类型是 Array_A1)
arr1 Array_A1;
 
-- 调用:使用下标调用数组变量,下标从1开始
-- 如:为变量 arr1 的第一个值赋值,如下:
arr1(1) := '值1';
注意:数组变量不能越界,即不要超过了下标(索引)范围

记录型变量

存放查询结果的一行数据

格式:

变量名 表名%rowtype;

例:声明一个变量emp_rec,保存员工表的一行数据

-- 声明变量
emp_rec emp%rowtype;

-- 调用变量的ename列的值
dbms_output.put_line(emp_rec.ename);

记录集变量

自定义一个结构类型,里面包含多个变量

格式:

type 类型名 is record
(
	变量1  数据类型;
	....
);

例:定义一个员工类型emp_record

-- 定义类型
type emp_record is record
(
  ename varchar2(20),       -- 姓名变量(属性1)
  eno number                -- 工号变量(属性2)
);
-- 声明 emp_record 类型的变量
emp_rec emp_record;

-- 调用:
dbms_output.put_line(emp_rec.ename);

表变量

有表结构的特征,可支持查询等表操作

格式:

-- 定义类型
type 表类型名称 is table of 数据类型 index by binary_integer;
-- 声明变量
变量名 表类型名称;

例:定义表变量类型emp_table存放员工表数据

-- 定义类型
type  emp_table is table of emp%rowtype index by binary_integer;
                          
-- 声明变量
table1 emp_table;

-- 调用:获取第一行的员工字段:
table1(1).ename;

 

转载请注明:XAMPP中文组官网 » Oracle开发:什么是PL/SQL?