plsql基本语法格式

2024-05-28 14:18
文章标签 语法 基本 格式 plsql

本文主要是介绍plsql基本语法格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1 PL/SQL可用的SQL语句
    • 2 PL/SQL块
    • 3 建议的命名方法
    • 4 复合类型
      • 4.1 使用记录类型
      • 4.2 使用%ROWTYPE

1 PL/SQL可用的SQL语句

PL/SQL是ORACLE系统的核心语言,现在ORACLE的许多部件都是由PL/SQL写成。在PL/SQL中可以使用的SQL语句有:

INSERT, UPDATE, DELETE, SELECT ... INTO, COMMIT, ROLLBACK, SAVEPOINT。

提示:在PL/SQL中只能用SQL语句中的DML部分,不能用DDL部分,如果要在PL/SQL中使用DDL(如CREATE table等)的话,只能以动态的方式来使用。

2 PL/SQL块

PL/SQL程序由三个块组成,即声明部分、执行部分、异常处理部分

PL/SQL块的结构如下:

DECLARE
/*声明部分:在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数*/
BEGIN
/*执行部分:过程及SQL语句,即程序的主要部分*/
EXCEPTION
/*执行异常部分:错误处理*/
END;

其中,执行部分是必须的

例如:(在PL/SQL中执行前需运行set serveroutput on语句)

--declare--声明的变量、类型、游标
begin--程序的执行部分(类似于java里的main()方法)dbms_output.put_line('helloworld');
--exception--针对begin块中出现的异常,提供处理的机制--when ... then ...--when ... then ...
end;
declare--变量、记录类型等的声明v_sal number(8,2) := 0;
begin--程序的执行部分select salary into v_salfrom employeeswhere employee_id = 123;dbms_output.put_line('salary: '||v_sal);
--exception--异常的处理
end;

在 PL/SQL 编程中,变量赋值是一个值得注意的地方,它的语法如下:
variable := expression;
variable 是一个 PL/SQL 变量,expression 是一个 PL/SQL 表达式

--查询编号为100号员工的工资
declare--声明变量v_sal varchar2(20);
begin--sql语句的操作:select ... into ... from ... where ...select salary into v_sal from employees where employee_id = 100;--打印dbms_output.put_line(v_sal);
end;
--查询编号为100号员工的工资,邮箱,入职时间
declare--声明变量v_sal number(10,2);v_email varchar2(20);v_hire_date date;
begin--sql语句的操作:select ... into ... from ... where ...select salary, email, hire_date into v_sal, v_email, v_hire_date from employees where employee_id = 100;--打印dbms_output.put_line(v_sal||','||v_email||','||v_hire_date);
end;

使用%TYPE
定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库的某个列的数据类型相同,这时可以使用%TYPE
使用%TYPE特性的优点在于:

  • 所引用的数据库列的数据类型可以不知道
  • 所引用的数据库列的数据类型可以实时改变
declare--声明变量v_sal employees.salary%type;v_email employees.email%type;v_hire_date employees.hire_date%type;
begin--sql语句的操作:select ... into ... from ... where ...select salary, email, hire_date into v_sal, v_email, v_hire_date from employees where employee_id = 100;--打印dbms_output.put_line(v_sal||','||v_email||','||v_hire_date);
end;

3 建议的命名方法

标识符命名规则例子
程序变量v_namev_name
程序常量c_namec_company_name
游标变量name_cursoremp_cursor
异常标识e_namee_too_many
表类型name_table_typeemp_record_type
name_tableemp_table
记录类型name_recordemp_record
SQL*Plus替代变量p_namep_sal
绑定变量g_nameg_year_sal

4 复合类型

4.1 使用记录类型

ORACLE在PL/SQL中除了提供基础的变量类型外,还提供一种称为复合类型的类型——记录

记录类型是把来逻辑相关的数据作为一个单元存储起来,称作PL/SQL RECORD的域(FIELD),其作用是存放互不相同但逻辑相关的信息
例如:

declare--声明一个记录类型type emp_record is record(v_sal employees.salary%type,v_email employees.email%type,v_hire_date employees.hire_date%type);--定义一个记录类型的成员变量v_emp_record emp_record;
begin--sql语句的操作:select ... into ... from ... where ...select salary, email, hire_date into v_emp_record from employeeswhere employee_id = 100;--打印dbms_output.put_line(v_emp_record.v_sal||','||v_emp_record.v_email||','||v_emp_record.v_hire_date);
end;
declaretype salary_record is record(v_name varchar2(20),v_salary number(10,2));v_salary_record salary_record;
beginv_salary_record.v_name := '刘德华';v_salary_record.v_salary := 100000; dbms_output.put_line('name: '||v_salary_record.v_name||' salary: '||v_salary_record.v_salary);
end;

4.2 使用%ROWTYPE

PL/SQL 提供%ROWTYPE操作符,返回一个记录类型,其数据类型和数据库表的数据结构相一致
使用%ROWTYPE特性的优点在于:

  • 所引用的数据库中列的个数和数据类型可以不必知道
  • 所引用的数据库中列的个数和数据类型可以实时改变
declarev_emp_record employees%rowtype;
beginselect * into v_emp_record from employees where employee_id = 123;dbms_output.put_line('employeeid: '||v_emp_record.employee_id);
end;

这篇关于plsql基本语法格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1010804

相关文章

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.