PL/SQL块结构

目录

        一、声明部分(declare)

        二、执行部分(begin    end)

        三、异常处理部分 (Exception  end)

        四、代码示例 

 

PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库提供的一种过程化编程语言,它结合了SQL的查询、数据操作和控制结构,以及PL/SQL特有的过程化编程特性。PL/SQL块是PL/SQL编程的基本单元。

块结构通常包括三个部分: 声明部分、执行部分和异常处理部分。

 一、声明部分(declare)

 主要作用

1.申明块中将要使用的变量,数据类型,游标(cursor)以及局部的存储过程和函数。

2.声明部分的所有内容在pl/sql块执行之前进行初始化,但在执行部分和异常处理部分都可以使用这些声明。 (变量的作用域是从它被声明的位置开始,直到包含它的块的结束。在声明之前的代码中,由于变量还未被声明,因此无法使用。)

 二、执行部分(begin    end)

 主要作用

1.执行部分是块的核心,包含了过程及SQL语句(sql语句和pl/sql语句),即程序的主要部分。

 2.在此部分,可以执行各种数据操作,(如增删改查),调用过程函数,以及进行逻辑判断和循环控制等。

 3.执行部分不能省略,且必须位于声明部分和异常处理部分之间。(如果两个都存在的话)

三、异常处理部分 (Exception  end)

主要作用

1.处理块在执行过程中可能遇到的错误或者异常情况。 

2.当执行部分的代码发生异常时,程序会跳转到异常处理部分,根据异常的类型执行相应的处理逻辑 。

 3.异常处理部分可以包含多个异常处理器(Exception Handller),每个异常处理器都针对一种特定的异常类型进行处理。(我的理解就是和Java异常处理机制差不多)

四、代码示例
declare  --声明部分
v_name varchar2(10); --语法:变量名+数据类型  
/*多个变量用分号隔开;变量名必须以字母开头,可以包含字母,下划线,美元符号,井号,但不包括空格和其他特殊字符。(关键字,以及语句不区分大小写,但是变量名区分);
*/
v_date date :=sysdate;--可以申明并初始化变量;begin   --执行部分
select name into v_name from stutent;  --执行sql语句,将查询结果赋值等操作
dbms_output.put_line('名字为:'||v_name);expection 
when    then  --当…捕获异常;end

(作者是初学者,记录一下语法规范,方便学习。) 

1.注释有两种,单行 --和多行/*...*/;

2.变量名定义规则 :字母开头,后续是字符,下划线,$,#,但不包括空格,以及其他字符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16796.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python:凯撒密码

题目内容: 凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下: 原文:A B C D E F G H I J K L M N O P Q R …

亚信安全正式接入DeepSeek

亚信安全致力于“数据驱动、AI原生”战略,早在2024年5月,推出了“信立方”安全大模型、安全MaaS平台和一系列安全智能体,为网络安全运营、网络安全检测提供AI技术能力。自2024年12月DeepSeek-V3发布以来,亚信安全人工智能实验室利…

2024BaseCTF_week4_web上

继续!冲冲冲 目录 圣钥之战1.0 nodejs 原型 原型链 原型链污染 回到题目 flag直接读取不就行了? 圣钥之战1.0 from flask import Flask,request import jsonapp Flask(__name__)def merge(src, dst):for k, v in src.items():if hasattr(dst, __geti…

【Java 面试 八股文】Redis篇

Redis 1. 什么是缓存穿透?怎么解决?2. 你能介绍一下布隆过滤器吗?3. 什么是缓存击穿?怎么解决?4. 什么是缓存雪崩?怎么解决?5. redis做为缓存,mysql的数据如何与redis进行同步呢&…

使用 Dockerfile 构建自定义 Nginx 镜像并集成 nginx_upstream_check_module

目录 1. 为什么需要自定义 Nginx 镜像? 2. Dockerfile 解析 2.1 基础镜像选择 2.2 安装依赖 2.3 下载并解压 Nginx 源码 2.4 应用补丁并编译 Nginx 2.5 暴露端口并设置启动命令 3. 构建并运行自定义 Nginx 镜像 3.1 构建镜像 3.2 运行容器 3.3 健康检测配…

Python办公自动化之PDF

python版本:3.13.1 开发工具:pycharm 安装三方库:pypdf2 、pdfplumber、pymupdf 一、从PDF中提取文字 用Python从PDF中提取文字-CSDN博客 二、从PDF中提取表格 用Python从PDF中提取表格-CSDN博客 三、拆分和合并PDF文件 用Python拆…

ds-download-link 插件:以独特图标选择,打造文章下载链接

源码介绍 “ds-download-link”插件为 WordPress 网站提供了在文章编辑器中添加下载链接的功能,每个下载链接都支持图标选择,并能将这些链接以美观的样式展示在文章前端页面。以下是该插件的主要特性和功能: 后台功能 在文章编辑器下方添加…

实操部署DeepSeek,添加私有知识库

目录 一、环境介绍 PowerShell版本: wsl版本: 虚拟机版本: 本机IP: 虚拟机IP: 容器宿主机IP(host.docker.internal): Docker版本: Docker Compose版本&#xff…

一致性Hash算法延伸至Redis分片扩容使Lua脚本失效如何解决

文章部分内容来源:小林coding 问题场景:我们需要用Lua脚本,并且这个Lua脚本需要用到两个Key,但这两个Key必须命中同一台机器才可以,不然Lua脚本就会执行失败。如果集群扩容可能会导致两个Key落到不同的节点上导致Lua脚…

macMini16G内存M4芯片 DeepSeek-r1本地化部署+chatbox三步走

DeepSeek本地化部署,有利于保护隐私,调用也方便。 大体来说分为3步:安装ollama,获取deepseekR1模型,chatbox设置并调用。 1.下载ollama客户端,并安装。 https://ollama.com/download 2.获取deepseekR1模型…

8.flask+websocket

http是短连接,无状态的。 websocket是长连接,有状态的。 flask中使用websocket from flask import Flask, request import asyncio import json import time import websockets from threading import Thread from urllib.parse import urlparse, pars…

港中文腾讯提出可穿戴3D资产生成方法BAG,可自动生成服装和配饰等3D资产如,并适应特定的人体模型。

今天给大家介绍一种名为BAG(Body-Aligned 3D Wearable Asset Generation)的新方法,可以自动生成可穿戴的3D资产,如服装和配饰,以适应特定的人体模型。BAG方法通过构建一个多视图图像扩散模型,生成与人体对齐…

用php tp6对接钉钉审批流的 table 表格 明细控件 旧版sdk

核心代码 foreach ($flows[product_list] as $k>$gift) {$items_list[] [[name > 商品名称, value > $gift[product_name] ?? ],[name > 规格, value > $gift[product_name] ?? ],[name > 数量, value > $gift[quantity] ?? ],[name > 单位, v…

结构形模式---桥接模式

概念 桥接模式是一种结构化模式,是将一个大类或者一系列的紧密相关的类拆分为抽象和现实两个独立部分的层次结构,通过引用独立层次对象的组合实现类。 桥接模式可以将庞杂类拆分为几个类层次结构。 此后, 你可以修改任意一个类层次结构而不…

【Oracle篇】浅谈执行计划中的多表连接(含内连接、外连接、半连接、反连接、笛卡尔连接五种连接方式和嵌套、哈希、排序合并三种连接算法)

💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…

服务器使用宝塔面板Docker应用快速部署 DeepSeek-R1模型,实现Open WebUI访问使用

Deepseek这段时间非常火,最新推理模型Deepseek R1,都想装上试一试,特别是部署到服务器教程网上一堆教程好像没几个部署成功靠谱的,先说服务器上下载Ollama就难倒一堆人,每次都超时。今天终于在宝塔看到一篇 应用安装文…

win10 llamafactory模型微调相关②

微调 使用微调神器LLaMA-Factory轻松改变大语言模型的自我认知_llamafactory 自我认知-CSDN博客 【大模型微调】使用Llama Factory实现中文llama3微调_哔哩哔哩_bilibili 样本数据集 (数据集管理脚本处需更改,见报错解决参考1) 自我认知微…

华硕笔记本怎么一键恢复出厂系统_华硕笔记本一键恢复出厂系统教程

华硕笔记本怎么一键恢复出厂系统? 华硕一键恢复出厂系统是一个安全、高效、方便的恢复方式,让您轻松还原出厂设置,以获得更好的系统性能。如果您的华硕电脑遇到问题,可以使用华硕一键恢复出厂系统功能。下面小编就教大家华硕笔记本…

TongETLV3.0安装指引(by lqw)

文章目录 安装准备系统环境要求和端口jdk版本要求安装包磁盘要求安装脚本对系统配置的影响 系统配置vm.max_map_count 至少为 262144,且设置 vm.overcommit_memory 参数值为 1使用 TongETL 的 Linux 用户需要设置最大文件打开数为 65536用户需要有sodo权限。安装net…

AI前端开发:赋能开发者,提升解决实际问题的能力

近年来,人工智能技术飞速发展,深刻地改变着各行各业。在软件开发领域,AI写代码工具的出现更是引发了一场革命,尤其是前端开发领域,AI的应用正在显著提升开发者的解决实际问题的能力。本文将探讨AI前端开发如何提升效率…