Oracle的PL/SQL编程

Oracle PL/SQL 编程 PL/SQL(Procedural Language/SQL)是 Oracle 数据库的过程化扩展,允许在 SQL 之外使用控制流、异常处理和游标等结构。PL/SQL 集成了 SQL 的功能,并增加了编程语言的特性,使得开发人员可以在数据库中实现复杂的业务逻辑。PL/SQL 是 Oracle 数据库中重要的编程语言,通过其强大的控制结构、异常处理机制和游标功能,开发者可以高效地实现复杂的数据库逻辑和批处理任务。 阅读详情

PL/SQL编程

基本语言风格

PL/SQL把SQL的数据操作功能同过程语言的数据处理功能结合起来。

 

--声明作用

declare

--变量、游标、用户自定义类型、异常

variables,cursors,user_defined,exceptione

--程序开始

begin

  -SQL   statements

  -PL/SQL    statements

--异常处理

EXCEPTION

Actions   to  perform   when  errors   occur

--程序结束标志

end;

1.     构成PL/SQL的基本单元:过程,函数,其他模块

2.     变量声明和异常处理是可选项,程序过程是必须的

字符集和注释

字符集包括:

1、所有大小写字母

2、0~9的数字

3、(){} +、-、*、%等一些特殊字符

4、空格符、制表符、回车符

 

单行注释:

--声明作用

declare

--变量、游标、用户自定义类型、异常

variables,cursors,user_defined,exceptione

--程序开始

begin

  -SQL   statements

  -PL/SQL    statements

--异常处理

EXCEPTION

Actions   to  perform   when  errors   occur

--程序结束标志

end;

 

多行注释:不允许嵌套使用

/*

declare

variables,cursors,user_defined,exceptione

begin

  -SQL   statements

  -PL/SQL    statements

EXCEPTION

Actions   to  perform   when  errors   occur

end;

*/

数据类型和转换

常用数据类型:

数字类型:Number、PLS_Integer、BINARY_Integer

字符类型:Char、Varchar2、Long、Nchar2、Nvarchar2

日期类型:Date、TimeStamp、Interval

布尔类型:Boolean

LOB类型:blob、long、raw、

 

类型转换

To_char():把Number和date类型转换为varchar2()类型

To_date():把char类型转换为Date类型

To_number():把char类型转换为number类型

自动类型转换:字符和数字,字符和日期

自动类型转换:Max结果是Number类型,这里就转换为varchar2类型

declare

v_customer_id  varchar2(10);

begin

  select  Max(CUST_ID)  INTO  v_customer_id

  from  customers  where  CUST_FIRST_NAME='Anne';

  end;

 

手动类型转换

declare

v_customer_id  varchar2(10);

begin

  select  to_char(Max(CUST_ID))  INTO  v_customer_id

  from  customers  where  CUST_FIRST_NAME='Anne';

  end;

变量和常量

变量就是程序读取和赋值的存储单元。

v_customer_id  varchar2(10);

v_name  varchar2(20);

v_date  Date;

常量就是在前面加上constant修饰,并且赋值即可。

limit_connect   constant  numb:=50000;

运算符

算术运算符

+-正负

+加号

-减号

*乘号

/出号

**幂

 

关系运算符

<>不等于

!=不等于

^=不等于

>大于

<小于

=等于

 

其他运算符

not

and

or

/**/

--

:=赋值

‘字符界

;

流程控制

IF_THEN_ELSE语句

declare

v_number   sales.prod_id%type;

v_comment   varchar2(35);

begin

  /*对prod_id判断*/

  select   max(prod_id)

  into   v_number

  from   sales;

  if    v_number<500   then

    v_comment:='Too  Small';

  elsif   v_number<1000   then

  v_comment:='Litter   Bigger';

  else

    v_comment:='That  enough';

  end   if;

end;

CASE语句

 

declare

v_first_name   customer.customer   first_name%type;

v_result   varchar2(20)

begin

  --从数据库中取出要判断的值

  select   customer_first_name

  into   v_first_name

  from   customer

  where    c_id=100;

  --判断v_first_name的值,获得结果

  case   v_first_name

    when   'Anne'   then

           v_result:='IS  Anne';

    when   'Fire'   then

           v_result:='IS  Fire';

    else

           v_result:='Nothing';

  end   CASE;

end;

 

FOR_LOOP语句

declare

v_counter   binary_integer:=1;

begin

  for   v_counter  in  1..19   LOOP

  --满足条件要执行的SQL语句

  insert   into   number_table(num)   values   (v_counter);

end   LOOP;

END;

 

WHILE_LOOP

declare

v_counter   binary_integer:=1;

begin

  WHILE   v_counter<20   LOOP

  --满足条件要执行的SQL语句

  insert   into   number_table(num)   values   (v_counter);

end   LOOP;

END;

GOTO顺序控制

goto  lable;label是指<<>>括起来的标记

declare

v_counter   binary_integer:=1;

LOOP

  INSERT   INTO   number_table(num)   values   (v_counter);

  v_counter:=v_counter+1;

  --v_counter:=20的时退出去

  if   v_counter=20   then

    goto   loop_end;

  end   if;

end   LOOP;

<<loop_end>>

END;

Oracle--PL/SQL编程 本文主要介绍了 PL/SQL 编程的相关知识。PL/SQL 是 Oracle 数据库中的一种过程化编程语言,以块为基本单位,分为声明、执行和异常处理三部分。文中阐述了其基本语法、数据类型,包括数组、字符、日期、布尔类型等,以及特殊的 %TYPE、RECORD、%ROWTYPE 类型。 同时,详细讲解了流程控制语句,如 IF、CASE、LOOP、WHILE、FOR 和 GOTO 等,并对游标的基本原理、显式游标、隐式游标及其属性进行了说明。此外,还介绍了异常处理的方法,包括预定义异常、用户自定义异常、错误编 阅读详情

相关推荐

Oracle SQL Plus工具与PL/SQL编程实战

SQL Plus是Oracle数据库提供的一个功能强大的交互式命令行工具,它是数据库管理员(DBA)和技术开发人员与Oracle数据库交互的重要手段。通过SQL Plus,用户可以执行SQL语句和PL/SQL块,进行数据查询、修改、备份及恢复等操作。本章将对SQL Plus的定义、历史背景以及其在数据库管理中的重要性做一个简洁的概览,为接下来的深入学习打下基础。-- 示例SQL Plus版本查询SQL Plus作为老牌的数据库管理工具,拥有着悠久的发展历史和广泛的应用基础。

weixin_28235889的博客 1251

1z0-071 Oracle Database 12c SQL

1z0-071 Oracle Database 12c SQL 第1题 ORDER BY语句 Q1.Evaluate the following SQL statement: SQL>SELECT cust_id, cust_last_name "Last Name" FROM customers WHERE country_id = 10 UNION SELECT cust_i...

yawei56789的专栏 509

Oracle PL/SQL高级编程实战指南

为了定义一个记录类型,我们需要明确记录中包含的字段以及它们的数据类型。定义记录类型的基本语法如下:...下面是一个具体的例子:DECLAREBEGINEND;引用类型可以用来创建对象类型的引用,或者直接引用表中的行。定义引用类型的基本语法如下:使用场景之一是在触发器或程序中直接引用触发事件中的行。例如:DECLAREBEGIN-- 获取特定员工的引用-- 使用引用进行操作END IF;END;

weixin_35732273的博客 1098

好书推荐—《精通Oracle Database 12c SQL&PL/SQL编程》

这是学习SQL和PL/SQL的一本好书,适合没有一点SQL基础的入门者。 看过很多学习SQL与PL/SQL的书,要么是需要一定的基础,要么是大量的基础知识堆砌而没有形成系统。 这本书不一样。 首先,它是官方出品的。 其次...

407

PLSQL程序设计.pdf (清晰版)

PLSQL程序设计.pdf 找了很多版本,都是图片版本的,不太清晰 好不容易找到个word版本的,我把他保存成pdf了 个人感觉还不错,拿出来共享下

Oracle Database 12c PL-SQL programming

Develop, debug, and administer robust database programs. Filled with detailed examples and expert strategies from an Oracle ACE, Oracle Database 12c PL/SQL Programming explains how to retrieve and process data, write PL/SQL statements, execute effective queries, incorporate PHP and Java, and work with dynamic SQL. Code testing, security, and object-oriented programming techniques are fully covered in this comprehensive Oracle Press guide. Explore new SQL and PL/SQL features in Oracle Database 12c Build control structures, cursors, and loop statements Work with collections, varrays, tables, and associative array collections Locate and repair errors and employ exception handlers Execute black box, white box, and integration tests Configure and manage stored packages and libraries Handle security with authentication and encryption Use LOBs to store text and multimedia content Write and implement PL/SQL and Java triggers Extend functionality using dynamic SQL statements Understand object types, nested tables, and unnesting queries

PL/SQL编程

PL/SQL实例 1.定义变量和常量

qq_39380737的博客 195

大模型技术驱动智慧矿山数字化转型

多模态大模型作为AI领域的前沿技术,通过融合视觉、传感器等多源数据,构建了强大的环境理解与决策能力。其核心价值在于打破数据孤岛,实现实时分析与智能响应,特别适用于工业场景中的复杂系统优化。在智慧矿山建设中,该技术通过数字孪生、设备自诊断和智能调度等模块,显著提升了安全生产效率和资源利用率。典型应用包括基于强化学习的采掘路径规划、多层级灾害预警体系构建,以及可自我更新的矿山知识图谱系统,这些创新正在推动传统矿业向数字化、智能化方向转型。

weixin_29061531的博客 222

Oracle PL/SQL编程详解

Oracle PL/SQL编程详解 - 古立 - 博客园 《我的网络摘抄本》 网摘/转载/备忘/随记 博客园 首页 新随笔 联系 管理 订阅

TDY的博客 2万+

医疗大模型实战——从零构建MedicalGPT全流程解析

本文详细解析了从零构建医疗大模型MedicalGPT的全流程实战。基于Qwen-7B模型与约195万条中文医疗数据,完整复现了增量预训练、监督微调与偏好对齐三大核心环节,并分享了如何在有限硬件资源下实现高效训练与部署,为开发者提供了可复现的医疗AI项目实战指南。

weixin_29193259的博客 553

保姆级教程:用OpenCV和MediaPipe在Python里实现实时手势识别(附完整代码)

本文提供了一份详细的Python教程,教你如何使用OpenCV和MediaPipe实现实时手势识别系统。从环境配置、手部关键点检测到手势分类算法,逐步讲解如何构建高精度手势识别应用,适用于智能家居控制、PPT操作等场景。教程包含完整代码示例和性能优化技巧,特别适合计算机视觉初学者和开发者实践。

weixin_28677005的博客 327

Oracle-PL/SQL编程

Oracle-PL/SQL编程学习记录

Java_Fly1的博客 2363

TensorRT-LLM环境配置避坑指南:从安装到实战

本文是一份详尽的TensorRT-LLM环境配置避坑指南。文章重点解析了从Python、CUDA、PyTorch版本选择,到解决mpi4py安装这一核心难题的完整流程,并提供了经过验证的稳定版本组合与实战排错方案,帮助开发者高效部署大语言模型推理优化环境。

a0b1c2d3的专栏 983

oracle pl/sql 编程,oracle PL/SQL基础编程

PL/SQL(Procedural Language/SQL)是oracle中引入的一种过程化编程语言PLS-00103:出现符号"declare"在需要下列之一时符号"begin"被替换为"declare"后继续存储过程里不需要用declare关键字PLS-00103:出现符号"end-of-file"在需要下列之一时:end要和if以及begin匹配,完了之后要用/来表示完了create or...

weixin_39570777的博客 989

【目标检测】yoloV5算法详解

一、与yoloV4相比,yoloV5的改进 输入端:在模型训练阶段,使用了Mosaic数据增强、自适应锚框计算、自适应图片缩放 基准网络:使用了FOCUS结构和CSP结构 Neck网络:在Backbone和最后的Head输出层之间插入FPN_PAN结构 Head输出层:训练时的损失函数GIOU_Loss,预测筛选框的DIOU_nns 二、yoloV5结构框架 CBL:CBL模块是由Conv+BN+Leaky_relu激活函数组成 Res unit:借鉴ResNet中的残差结构,用来构建深层网络,CBM是

qq_40373651的博客 2万+

Kill5.37版本下,使用ARMcomplier6编译__asm 函数报错的问题

Kill5-5.37版本下,使用ARMcomplier6编译__asm 函数报错的问题 问题简要描述: 昨日更新了keil5软件的版本,从5.17更新到了5.37版本,然后编译STM32项目文件时,软件提示编译报错。报错问题如下: Build started: Project: QKsoftware *** Using Compiler 'V6.18', folder: 'E:\MDK-ARM\ARM\ARM\ARMCLANG\Bin' Build target 'QKsoftware' compiling

weixin_43644424的博客 1万+

oracle PL/SQL编程基础

1 PL/SQL介绍 PL/SQL是在日常工作中,使用oracle数据库常用的一种编程语言,是oracle公司对标准SQL语言的过程化扩展,在SQL语句的基础上增加了编程语言的特点。主要是把数据操作和查询语句放在PL...

1989

YOLOv11改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题

本文记录的是改进YOLOv11的损失函数,将其替换成Slide Loss,并详细说明了优化原因,注意事项等。Slide Loss函数可以有效地解决样本不平衡问题,为困难样本赋予更高的权重,使模型在训练过程中更加关注困难样本。若是在自己的数据集中发现容易样本的数量非常大,而困难样本相对稀疏,可尝试使用Slide Loss来提高模型在处理复杂样本时的性能。

Limiiiing的博客 4567

Oracle19C入门到熟练017-PL/SQL编程

SQL也能进行编程, 你相信么?来了解一下Oracle的PL/SQL啊~

langfeiyes的博客 1408

【批处理脚本】-0.1-如何运行批处理bat文件

如何运行批处理bat文件

「汽车电子助手」的博客 1585

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Oracle基础【5-Oracle中的PL/SQL编程】

推荐关注博主!随时获取更多关于Oracle的最新技术分享!

m0_51574586的博客 1401

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Oracle】玩转Oracle数据库(五):PL/SQL编程

本文深入介绍了Oracle数据库中的PL/SQL编程,包括存储过程、触发器、函数等重要内容。首先,读者将了解PL/SQL编程的基本结构和语法规则,掌握如何编写简单而有效的存储过程和函数。其次,文章详细讨论了触发器的概念和应用场景,帮助读者理解触发器在数据库操作中的重要性和灵活性。接着,我们深入探讨了PL/SQL中的异常处理机制,以及事务控制的方法,帮助读者构建更健壮和安全的数据库程序。

朝花夕拾 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Oracle PL/SQL编程规范

摘自:https://www.cnblogs.com/guohu/archive/2014/01/15/3520907.html Oracle PL/SQL编程规范 一、PL/SQL编程规范之大小写 就像在SQL中一样,PL / SQL中是不区分大小写的。其一般准则如下: 关键字(BEGIN, EXCEPTION, END, IF THEN ELSE,LOOP, END L...

kikiwhq的专栏 385

ORACLE PL/SQL编程

PL/SQL程序设计 什么是PL/SQL PL/SQL是ProcedureLanguage&StructuredQueryLanguage的缩写。PL/SQL是对SQL语言存储过程语言的扩展。从ORACLE6以后,ORACLE的RDBMS附带了PL/SQL。它现在已经成为一种过程处理语言,简称PL/SQL。目前的PL/SQL包括两部分,一部分是数据库引擎部分;另一部分是可...

weixin_30411997的博客 558

Oracle PL/SQL 编程入门:第一章 PL/SQL 的基本概述

PL/SQL 引擎:负责解释和执行 PL/SQL 代码。SQL 引擎:负责执行 SQL 语句。Oracle 数据库:存储数据并提供访问接口。PL/SQL 引擎和 SQL 引擎紧密协作,共同完成数据操作任务。当你在 PL/SQL 中执行 SQL 语句时,PL/SQL 引擎会将这些语句传递给 SQL 引擎,后者再与数据库交互并返回结果。在这一章中,我们学习了 PL/SQL 的基本概念、架构、结构以及如何使用不同的开发环境进行编程。PL/SQL 架构。

caifox的博客 1447

Oracle实验五 PL/SQL编程

实验五 PL/SQL编程 【实验目的】 熟悉PL/SQL的数据类型和书写规则 熟悉控制结构和游标的使用 编写和运行函数、过程和触发器 【实验内容】 编写脚本文件,调试运行脚本文件,并记录结果。 一、在SQL*Plus中编写一个PL/SQL块,功能用于打印学生信息。 在DECLARE部分完成: 建立学生信息记录类型stu_record_type,包括学号,姓名,性别,籍贯,学习成绩和活动成绩。均为可变长字符类型 编写本地子过程:学生信息打印过程PrintStuRecord,把(1)中定义

qq_44458671的博客 2727
上一篇: Servlet中HttpSession
下一篇: Java中自定义异常
午-夜
博客等级 码龄12年 95粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值