【赵渝强老师】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

相关文章
|
8月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
822 6
|
存储 Python
Python中,集合(Set)
Python中,集合(Set)
291 1
|
Java 关系型数据库 MySQL
阿里巴巴Java开发手册简介(终极版、华山版、泰山版)(附下载地址)
阿里巴巴Java开发手册简介(终极版、华山版、泰山版)(附下载地址)
9960 0
|
6月前
|
运维 负载均衡 自动驾驶
自动化运维卷到最后,都卷成了“智能决策”?——从脚本到AIOps的进化史
自动化运维卷到最后,都卷成了“智能决策”?——从脚本到AIOps的进化史
289 7
|
7月前
|
机器学习/深度学习 SQL 关系型数据库
TRUNCATE、DELETE、DROP 的区别?
MySQL中DELETE、TRUNCATE和DROP均用于删除数据,但作用不同:DELETE删除行记录,支持WHERE条件和事务回滚,速度慢;TRUNCATE快速清空表并重置自增ID,不可回滚;DROP则彻底删除表结构与数据,操作不可逆。三者在日志记录、速度及功能上有显著差异。
783 0
|
10月前
|
API 定位技术 数据安全/隐私保护
微信加好友频繁怎么解决?有方法吗
微信加好友频繁的成因分析与系统解决方案
|
7月前
|
负载均衡 安全 关系型数据库
【赵渝强老师】MySQL集群解决方案
MySQL主从与主主复制集群可实现数据同步、读写分离及高可用。主从复制支持一主多从,提升性能与安全;主主复制则互为备份,双向同步,适用于高并发场景,增强系统可靠性与扩展性。
217 4
|
关系型数据库 MySQL 数据库
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
606 19
【赵渝强老师】数据库不适合Docker容器化部署的原因
|
10月前
|
SQL 缓存 监控
Oracle 亿级数据 插入 实战方案
本方案提供高效数据插入实施指南,涵盖环境评估、技术选型、分阶段实施、RAC优化、监控应急及性能验证,确保大规模数据加载稳定高效,已在生产环境验证1.2亿条数据3.5小时内完成插入。
|
XML 存储 Java
Vim操作指令全解析
Vim是Linux环境中高效文本编辑的强大工具,支持多种模式(普通、插入、可视、命令行)以实现灵活操作。本文全面解析Vim的基础移动、编辑指令,搜索替换功能,窗口分屏技巧,寄存器与宏使用,以及高级文本对象操作和批量处理方法。同时,提供实用配置建议和插件推荐(如NERDTree、vim-airline),帮助用户提升效率。学习资源包括内置教程`vimtutor`及官方文档,助您从新手成长为Vim高手。
735 7