【赵渝强老师】Oracle数据库的PL/SQL编程语言

简介: PL/SQL是Oracle对SQL的扩展,结合过程化编程特性,支持开发存储过程、函数和触发器。本文介绍其基本结构,并演示如何在SQL*Plus中编写“Hello World”程序,需启用serveroutput输出。也可使用Oracle SQL Developer更高效地开发调试PL/SQL应用。

b408.png

Oracle数据库在SQL的基础上提供了自己的开发语言PL/SQL。通过使用PL/SQL可以开发强大的应用程序,并且能够进一步开发Oracle的存储过程、存储函数和Oracle数据库的触发器。百度百科中对PL/SQL做了如下的说明:

PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。
在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,
通过逻辑判断、循环等操作实现复杂的功能或者计算。


视频讲解如下:


PL/SQL程序的基本结构如下所示:

declare
  说明部分
begin
  程序体部分
exception
  例外处理部分
end;
/

# 其中:
# 说明部分包括:变量常量的说明、游标的申明和例外的申明。
# 程序体部分包括:DML语句序列、条件判断语句和循环语句等。
# 例外处理部分包括:如何处理程序体部分产生例外的语句序列。


在了解了PL/SQL的基本内容后,下面的步骤将开发第一个Oracle数据库的PL/SQL程序。该程序将在屏幕上输出“Hello World”的字符串。


(1)使用c##scott用户登录数据库。

SQL> conn c##scott/tiger


(2)在SQL*Plus命令行中直接书写PL/SQL程序,打印Hello World。程序代码如下:

SQL> declare
  --说明部分
begin
   --程序体
   dbms_output.put_line('Hello World');
end;
/

# 输入回车后执行PLSQL程序。输出的信息如下:

PL/SQL procedure successfully completed.

# 在输出的信息中没有打印Hello World。这是因为在默认情况下,
# Oracle数据库服务器输出是关闭的,需要手动将其打开。


(3)打开Oracle服务器的输出开关。

SQL> set serveroutput on


(4)在SQL*Plus输入一个右斜线重新执行第(1)步中的PL/SQL程序。

SQL> /

# 输出的信息如下:

Hello World
PL/SQL procedure successfully completed.


(5)在SQL*Plus命令行中可以开发并执行PL/SQL程序,但是使用起来并不是很方便。借助Oracle SQL Developer可以更好地开发、运行和调试PL/SQL的应用程序。下图展示了在Oracle SQL Developer中运行PL/SQL应用程序的效果。

image.png

相关文章
|
Java 关系型数据库 MySQL
阿里巴巴Java开发手册简介(终极版、华山版、泰山版)(附下载地址)
阿里巴巴Java开发手册简介(终极版、华山版、泰山版)(附下载地址)
10230 0
|
11月前
|
运维 负载均衡 自动驾驶
自动化运维卷到最后,都卷成了“智能决策”?——从脚本到AIOps的进化史
自动化运维卷到最后,都卷成了“智能决策”?——从脚本到AIOps的进化史
417 7
|
6月前
|
SQL 存储 关系型数据库
MySQL介绍:零基础入门,读懂这款主流关系型数据库
MySQL是全球最流行的开源关系型数据库,由瑞典MySQL AB公司开发,现属Oracle旗下。它基于SQL语言,以表格组织数据,支持事务(ACID)、高并发与多平台部署,免费易用、性能稳定,广泛应用于网站、企业系统及移动应用等场景。
790 3
|
12月前
|
机器学习/深度学习 SQL 关系型数据库
TRUNCATE、DELETE、DROP 的区别?
MySQL中DELETE、TRUNCATE和DROP均用于删除数据,但作用不同:DELETE删除行记录,支持WHERE条件和事务回滚,速度慢;TRUNCATE快速清空表并重置自增ID,不可回滚;DROP则彻底删除表结构与数据,操作不可逆。三者在日志记录、速度及功能上有显著差异。
966 0
|
人工智能 自然语言处理 决策智能
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
704 6
|
12月前
|
负载均衡 安全 关系型数据库
【赵渝强老师】MySQL集群解决方案
MySQL主从与主主复制集群可实现数据同步、读写分离及高可用。主从复制支持一主多从,提升性能与安全;主主复制则互为备份,双向同步,适用于高并发场景,增强系统可靠性与扩展性。
271 4
|
人工智能 固态存储 IDE
Android Studio 2025 超详细安装图解:从零到汉化一步到位
Android Studio 2025(Narwhal)是谷歌推出的最新安卓开发IDE,界面更现代,支持AI辅助编码、Jetpack Compose升级、多设备模拟器,构建速度更快,适配折叠屏等新形态设备,全面提升开发效率。
5269 2
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
1098 6
|
关系型数据库 MySQL 数据库
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
754 19
【赵渝强老师】数据库不适合Docker容器化部署的原因
|
SQL 分布式计算 大数据
《深度剖析Spark SQL:与传统SQL的异同》
Spark SQL是Apache Spark生态系统中用于处理结构化数据的组件,作为大数据时代的SQL利器,它在继承传统SQL语法和逻辑思维的基础上,重新定义了数据处理的效率与灵活性。相比传统SQL,Spark SQL支持分布式计算、内存处理及多种数据源,可高效应对PB级数据挑战。其核心概念DataFrame提供优化查询能力,使数据分析更便捷。两者虽有联系,但在处理规模、计算模式和优化策略上差异显著,共同满足不同场景下的数据需求。
1050 35