前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Oracle PL/SQL例9:为变量赋值

Oracle PL/SQL例9:为变量赋值

作者头像
SQLplusDB
发布于 2022-12-20 04:01:27
发布于 2022-12-20 04:01:27
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

编者按:

四十不惑是要有自己的判断力。根据自身的状况,知道对自己而言,什么是最重要的!

最好的学习是实践加上看官方文档。官方文档中的代码例更是精华和重点所在。

IT行业如此,编程如此,Oracle PL/SQL的学习更是如此。

本系列以摘自《Database PL/SQL Language Reference》的PL/SQL代码例为主进行介绍。

【免责声明】本公众号文章仅代表个人观点,与任何公司无关。

编辑|SQL和数据库技术(ID:SQLplusDB)

Oracle PL/SQL例

Oracle PL/SQL编程基础 Oracle PL/SQL例2:处理查询的结果行(基础循环) Oracle PL/SQL例3:使用双引号 Oracle PL/SQL例4:文字(Literals)换行的处理 Oracle PL/SQL例5:注释 Oracle PL/SQL例6:声明变量/常量 Oracle PL/SQL例7:%TYPE 属性 Oracle PL/SQL例8:标识符引用

变量赋值的方法主要包括如下方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 通过赋值语句为变量赋值
2. 使用SELECT INTOFETCH语句为变量赋值
3. 将变量作为OUTIN OUT参数传递给子程序,然后在子程序内赋值。

1. 通过赋值语句为变量赋值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
variable_name := expression;

例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DECLARE  -- You can assign initial values here
  wages          NUMBER;
  hours_worked   NUMBER := 40;
  hourly_salary  NUMBER := 22.50;
  bonus          NUMBER := 150;
  country        VARCHAR2(128);
  counter        NUMBER := 0;
  done           BOOLEAN;
  valid_id       BOOLEAN;
  emp_rec1       employees%ROWTYPE;
  emp_rec2       employees%ROWTYPE;
  TYPE commissions IS TABLE OF NUMBER INDEX BY PLS_INTEGER;
  comm_tab       commissions;
 
BEGIN  -- You can assign values here too
  wages := (hours_worked * hourly_salary) + bonus;
  country := 'France';
  country := UPPER('Canada');
  done := (counter > 100);
  valid_id := TRUE;
  emp_rec1.first_name := 'Antonio';
  emp_rec1.last_name := 'Ortiz';
  emp_rec1 := emp_rec2;
  comm_tab(5) := 20000 * 0.15;
END;
/

2. 使用SELECT INTO或FETCH语句为变量赋值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT select_item [, select_item ]... 
INTO variable_name [, variable_name ]...
FROM table_name;

例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DECLARE
  bonus   NUMBER(8,2);
BEGIN
  SELECT salary * 0.10 INTO bonus
  FROM employees
  WHERE employee_id = 100;
END;

DBMS_OUTPUT.PUT_LINE('bonus = ' || TO_CHAR(bonus));
/
结果:
bonus = 2400

3. 将变量作为OUT或IN OUT参数传递给子程序,然后在子程序内赋值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DECLARE
  emp_salary  NUMBER(8,2);
 
  PROCEDURE adjust_salary (
    emp        NUMBER, 
    sal IN OUT NUMBER,
    adjustment NUMBER
  ) IS
  BEGIN
    sal := sal + adjustment;
  END;
 
BEGIN
  SELECT salary INTO emp_salary
  FROM employees
  WHERE employee_id = 100;
 
  DBMS_OUTPUT.PUT_LINE
   ('Before invoking procedure, emp_salary: ' || emp_salary);
 
  adjust_salary (100, emp_salary, 1000);
 
  DBMS_OUTPUT.PUT_LINE
   ('After invoking procedure, emp_salary: ' || emp_salary);
END;
/
结果:
Before invoking procedure, emp_salary: 24000
After invoking procedure, emp_salary: 25000
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SQL和数据库技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Oracle PL/SQL入门语法点
PL_SQL:带有分支和循环,面向过程 匿名块: declare(可选,声明各种变量和游标的地方) begin(必要的,从此开始执行) exception(抓取到异常后执行的) end; [sql] view plaincopy set serveroutput on;(默认是关闭) --最简单的PL/SQL语句块 begin dbms_output.put_line('HelloWorld!'); end; --最简单的语句块 declare v_name varchar2(20); be
java干货
2021/02/19
4980
PL/SQL 编程(一)基础,变量,分支,循环,异常
SQL和PL/SQL: SQL 结构化查询语言(Structural Query Language),是用来访问和操作关系型数据库的一种标准通用语言,属于第四代语言(4GL)。可以方便的调用相应语句来去的结果,特点是非过程化,使用的时候不用指明执行的具体方法,不用关注实现的细节,但是某些情况下满足不了复杂业务流程的需求。 PL/SQL是 Procedure Language & Structured Query Language 的缩写。属于第三代语言(3GL),是一种过程化语言。PL/SQL是对SQL语言
二十三年蝉
2018/02/28
1.7K0
PL/SQL 编程(一)基础,变量,分支,循环,异常
PL/SQL学习笔记_01_基础:变量、流程控制
PL/SQL语句可以在Oracle客户端的 SQL窗口或者 command  窗口中运行
shirayner
2018/08/10
8770
PL/SQL学习笔记_01_基础:变量、流程控制
PL/SQL学习笔记_03_存储函数与存储过程
ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。
shirayner
2018/08/10
4070
游标和动态SQL
游标类别:静态游标(指在编译的时候,游标就与一个select语句进行了静态绑定的游标,这种游标只能作用于一个查询语句)和动态游标(就是希望我们的查询语句在运行的时候才跟游标绑定,为了使用动态游标,必须声明游标变量)。
全栈程序员站长
2022/09/09
1.1K0
Oracle-PL/SQL基础
pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展,pl/sql不仅允许嵌入Sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。
小小工匠
2021/08/16
1.8K0
PL/SQL 编程(二)游标、存储过程、函数
游标--数据的缓存区 游标:类似集合,可以让用户像操作数组一样操作查询出来的数据集,实质上,它提供了一种从集合性质的结果中提取单条记录的手段。 可以将游标形象的看成一个变动的光标,他实质上是一个指针,在一段Oracle存放数据查询结果集或者数据操作结果集的内存中,这个指针可以指向结果集任何一条记录。 游标分静态游标和REF游标两类,静态游标包含显式游标和隐式游标。 显式游标: 在使用之前必须有明确的游标声明和定义,这样的游标定义会关联数据查询语句,通常会返回一行或多行。打开游标后,用户可以利用游标的位置对结
二十三年蝉
2018/02/28
3.8K0
PL/SQL 游标变量
    游标变量与游标相似,有其共性,也有其不同点。就其共性来说两者都是指向多行查询的结果集中的当前行。都要经历声明,打开,检索与关闭的过程。所不同的是游标与游标变量类似于常量与变量。游标是静态的,而游标变量是动态的,因为游标变量并不与某个特定的查询相绑定。所以,游标变量可以打开任何类型兼容的查询。其次可以将游标变量作为参数传递给本地和存储子程序。本文主要描述游标变量的使用。
Leshami
2018/08/14
1.3K0
pl/sql编程---过程、函数、包
1.注释 单行注释 -- select * from emp where empno=7788; --取得员工信息 多行注释 /*...*/来划分 2.标志符号的命名规范 1).当定义变量时,建议用v_作为前缀v_sal 2).当定义常量时,建议用c_作为前缀c_rate 3).当定义游标时,建议用_cursor作为后缀emp_cursor 4).当定义例外时,建议用e_作为前缀e_error 3.块结构示意图 pl/sql块由三个部分构成:定义部分,执行部分,例外处理部分。 如下所示: declare
微醺
2019/01/17
5710
PL/SQL 嵌套记录与记录集合
    将多个逻辑上不相关列组合到一起形成了PL/SQL的记录类型,从而可以将记录类型作为一个整体对待来处理。而且PL/SQL记录类型可以进行 嵌套以及基于PL/SQL记录来定义联合数组,嵌套表等。本文首先回顾了PL/SQL记录的几种声明形式,接下来主要描述PL/SQL记录的嵌套以及基于 记录的集合。     有关PL/SQL 记录语法、以及在SQL中使用PL/SQL记录,请参考:PL/SQL --> PL/SQL 记录
Leshami
2018/08/14
1.2K0
PL/SQL --> 游标
映射在结果集中某一行数据的具体位置,类似于C语言中的指针。即通过游标方式定位到结果集中某个特定的行,然后根据业务需求
Leshami
2018/08/07
1.1K0
快速学习Oracle-pl/sql 基本语法
PL/SQL(Procedure Language/SQL)PLSQL 是 Oracle 对 sql 语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句(如分支、循环等),使 SQL 语言具有过程处理能力。把 SQL 语言的数据操纵能力与过程语言的数据处理能力结合起来,使得 PLSQL 面向过程但比过程语言简单、高效、灵活和实用。
cwl_java
2019/12/19
1.2K0
PL/SQL学习笔记_02_游标
        在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实现。 
shirayner
2018/08/10
8610
Oracle PL/SQL基础知识及应用案例
本文介绍了Oracle PL/SQL的基础知识,包括概述和优势、数据类型和变量、控制结构以及异常处理。通过具体的PL/SQL代码示例和运行结果,展示了这些基础知识的实际应用。
GeekLiHua
2025/01/21
1620
PL/SQL --> PL/SQL记录
PL/SQL记录有着类似于表的数据结构,是一个或多个字段且拥有数据类型的集合体。定义了PL/SQL记录类型之后,可以定义PL/SQL记录变
Leshami
2018/08/07
7730
PL/SQL --> 异常处理(Exception)
Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误或警告,则会触发异常处理。为了提高程序的健壮性,可以在PL/SQL块中引
Leshami
2018/08/07
1.7K0
Oracle PL/SQL编程之变量
注: 以下测试案例所用的表均来自与scott方案,使用前,请确保该用户解锁. 1、简介 和大多数编程语言一样,在编写PL/SQL程序时,可以定义常量和变量,在pl/sql程序中包括有: a、标量类型(Scalar) b、复合类型(Composite) c、参照类型(Refrence) d、lob(large object)类型 下面来一一介绍 2、标量(Scalar)类型       只能存放单个值的变量 在编写pl/sql语句时,如果需要用到变量,那么就需要在定义部分定义变量。pl/sql中定义变量个常量
郑小超.
2018/01/26
1.1K0
PL/SQL --> 动态SQL
使用动态SQL是在编写PL/SQL过程时经常使用的方法之一。很多情况下,比如根据业务的需要,如果输入不同查询条件,则生成不同的执行
Leshami
2018/08/07
2.3K0
Oracle PL/SQL中异常高级特性
  在OraclePL/SQL语句块中exception的异常处理部分是非常重要的组成部分,它决定了在PL/SQL语句块内部可执行部分在发生异常错误时,程序是友好地提示:程序遇到某些错误而无法执行,还是抛出一堆难以理解的Oracle内部错误码。
星哥玩云
2022/08/17
7140
Oracle应用实战七——多表查询+PL/SQL
1 多表查询 内连接 使用一张以上的表做查询就是多表查询 语法: SELECT {DISTINCT} *|列名.. FROM 表名 别名,表名1 别名 {WHERE 限制条件 ORDER BY 排序
Java帮帮
2018/03/19
3K0
Oracle应用实战七——多表查询+PL/SQL
相关推荐
Oracle PL/SQL入门语法点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档