`

10.定义并使用变量-标量类型

阅读更多

定义:
在编写pl/sql程序时,可以定义变量和常量;在pl/sql程序中包括有:
1)标量类型(scalar)
2)复合类型(composite)
3) 参照类型(reference)
4)lob(large object)

标量(scalar)---常用类型
在编写pl/sql块时,如果要使用变量,需在定义部分定义变量。
pl/sql中定义变量和常量的语法如下:
identifier [constant] datatype [not null] [:=| default exptr]
identifier:名称
constant:指定常量,需要指定它的初始值,且其值是不能改变的
datatype:数据类型
not null:指定变量值不能为null
:= 给变量或是常量指定初始值
default:用于指定初始值
expr:指定初始值的pl/sql表达式,可以是文本值、其它变量、函数等


标量定义的案例
1)定义一个变长字符串
v_ename varchar2(10);
2)定义一个小数 范围 -9999.99——9999.99
v_sal number(6,2);
3)定义一个小数并给一个初始值为5.4 :=是pl/sql的赋值号
v_sal2 number(6,2):=5.4
4)定义一个日期类型的数据
v_hiredate date;
5)定义一个布尔变量,不能为空,初始值为false
v_valid  boolean not null default false;


标量(scalar)---使用标量
在定义好变量后,就可以使用这些变量。这里需要说明的是pl/sql块为变量赋值不同于其它的编程语言,需要在等号前加冒号(:=)


下面以输入员工号,显示雇员姓名、工资、个人所得税(税率为0.03)为例
declare
--定义常量税率并赋初值
c_tax_rate number(3,2):=0.03;
--定义变量
--用户名
v_ename varchar2(5);
--工资
v_sal number(7,2);
--个人所得税
v_tax_sal number(7,2);
begin
  --执行
  select ename,sal into v_ename,v_sal from emp where empno=&no;
  --计算所得税
  v_tax_sal:=v_sal*c_tax_rate;
  --输出
  dbms_output.put_line('姓名:'||v_ename||' 工资:'||v_sal||' 个人所得税:'||v_tax_sal||' 实际工资:'||(v_sal-v_tax_sal));
  end;

标量(scalar)---使用%type类型
对于上面的pl/sql块有一个问题:
就是如果员工的姓名超过了5字符的话,就会有错误,为了降低pl/sql程序的维护工作量,可以使用%type属性来定义变量,这样它会按照数据库列的类型来确定你定义的变量的类型和长度。
使用方式: 标识符名 表名.列名%type;

例子:
--用户名
v_ename emp.ename%type;
//意思就是定义的变量v_ename的类型和emp这个表的ename这个列的类型保持一致


实例:
--下面以输入员工号,显示雇员姓名、工资、个人所得税(税率为0.03)为例
declare
--定义常量税率并赋初值
c_tax_rate number(3,2):=0.03;
--定义变量
--用户名
v_ename emp.ename%type;
--工资
v_sal number(7,2);
--个人所得税
v_tax_sal number(7,2);
begin
  --执行
  select ename,sal into v_ename,v_sal from emp where empno=&no;
  --计算所得税
  v_tax_sal:=v_sal*c_tax_rate;
  --输出
  dbms_output.put_line('姓名:'||v_ename||' 工资:'||v_sal||' 个人所得税:'||v_tax_sal||' 实际工资:'||(v_sal-v_tax_sal));
  end;
 

1
5
分享到:
评论

相关推荐

    定义并使用变量,复合类型

    定义变量时,可以使用`not null`关键字确保变量值不为空,并通过`:=`或`default`关键字设置初始值。 在PL/SQL中,赋值操作使用`:=`,与许多其他编程语言中的`=`不同。例如,我们可以声明一个变量`v_tax_rate`来存储...

    MATLAB 7.X程序设计--基础篇教程

    2. **数据类型**:MATLAB支持多种数据类型,如标量、向量、矩阵、数组、复数、结构体等。其中,矩阵是MATLAB的基础,所有计算都以矩阵形式进行。 3. **基本运算**:包括算术运算(加减乘除、指数、开方等)、关系...

    《MATLAB 7.X程序设计》-王建卫-源代码及习题答案

    - 符号计算:使用符号变量进行精确计算,解决代数方程组。 - 数值计算:涉及数值求解、插值、微积分、矩阵运算、线性代数等。 - 图形绘制:包括二维和三维图形绘制,如plot、surf、contour等函数,以及图形的定制...

    C 代码 查找标量变量的标量函数的全局最小值.rar

    在C编程语言中,查找标量变量的全局最小值是一个常见的数学问题,特别是在数值计算、数据分析和算法设计中。这个“C代码查找标量变量的标量函数的全局最小值.rar”压缩包提供了两个文件,glomin_nogoto.c 和 glomin_...

    C 代码 查找标量变量的标量函数的全局最小值, 不使用衍生信息.rar

    标题 "C 代码 查找标量变量的标量函数的全局最小值, 不使用衍生信息.rar" 提供了我们即将探讨的关键技术点:在C语言环境下,如何寻找一个标量函数(即只涉及一个变量的函数)的全局最小值,且不依赖于函数的导数...

    C 代码 查找标量变量的标量函数的局部最小值.rar

    标题 "C 代码 查找标量变量的标量函数的局部最小值.rar" 提供的信息表明,这是一个关于使用C语言实现寻找标量函数局部最小值的程序。在数学和计算机科学中,查找函数的局部最小值是优化问题的一个重要部分,通常应用...

    C 代码 定义测试问题以最小化 多个变量的标量函数.rar

    本资源“C代码 定义测试问题以最小化 多个变量的标量函数.rar”似乎提供了用于解决多变量标量优化问题的C语言实现。优化问题通常涉及到寻找一个或多个变量的最佳组合,使得某个目标函数达到最小值或最大值。在科学...

    《MATLAB 7.X程序设计》-王建卫-电子教案-4678

    1. **基础语法与数据类型**:了解MATLAB的基本语法,包括变量定义、运算符、流程控制(如if-else、for、while循环)、函数定义等。此外,还将学习MATLAB支持的不同数据类型,如标量、向量、矩阵、数组和结构体。 2....

    C 代码 实现测试问题 标量变量的标量函数的最小化.rar

    本资源"**C 代码 实现测试问题 标量变量的标量函数的最小化.rar**"显然是关于如何使用C语言来实现一个特定的数学优化问题——寻找标量函数的最小值。这个过程通常涉及到数值方法,如梯度下降法或牛顿法。 在数学中...

    Chapter 1- Scalar Variables and Data Types 第 1 章:标量变量和数据类型.doc

    标量变量是最基础的数据类型之一,在Python中包括以下几种类型: - **整型**(`int`):表示整数,如`10`。 - **浮点型**(`float`):表示带有小数部分的数值,如`3.14`。 - **布尔型**(`bool`):表示逻辑值`...

    OPNET 用户指南_翻译稿.pdf

    - **描述**:定义随机变量的概率分布。 - **文件格式**:二进制文件/可编辑/可导入仿真。 - **作用**:用于仿真中的随机事件建模。 21. **包格式模型(.pk.m)** - **描述**:定义数据包的结构。 - **文件格式**...

    Matlab - Math Problems solving with Matlab Programming.pdf

    - 说明了MATLAB如何查找并加载用户定义的函数和脚本,以及如何管理这些路径。 #### 三角函数和复数 **三角函数和复数**章节覆盖了MATLAB中三角函数的使用以及复数的基本运算: - **三角函数**(第4.1节): - ...

    lab01a.pdf

    了解不同类型的变量(如标量、向量和矩阵)以及如何进行算术运算。 9. **Exercise 9 - Vectors and matrices**: MATLAB以向量和矩阵为中心,掌握它们的创建、索引和操作对于后续工作至关重要。包括加法、减法、乘法...

    PHP的标量类型002

    PHP中的字符串可以使用单引号或双引号定义,双引号中的变量会被解析,而单引号则不会。字符串长度通过`strlen()`函数获取,连接字符串可以使用`.`操作符。 4. **布尔型(Boolean)**: 布尔型只有两个值:`true`和...

    科学计算:Python VS. MATLAB(3)-线性代数基础 (自动保存的).pdf

    - 线性空间是一组向量的集合,其中定义了加法和标量乘法操作,并且满足特定的代数性质。 - 线性变换是在线性空间间保持线性结构的函数,它将向量映射为向量,保持加法和标量乘法的特性。 2. **向量的线性相关性**...

    PHP、web前端开发-数据类型.pptx

    在PHP和Web前端开发中,数据类型是编程的基础概念,它定义了变量可以存储的数据种类。在PHP中,数据类型分为标量类型、复合类型、特殊类型以及预定义的常量`null`。了解和熟练掌握这些数据类型对于编写高效且可靠的...

    matlab零基础入门彩色图像技术:1 变量类型.zip

    在MATLAB中,掌握变量类型是进行任何编程和数据分析的基础,尤其在处理图像技术时更为重要。本教程将带你从零开始了解MATLAB中的变量类型,以便更好地理解和操作彩色图像。 1. 基本变量类型 - **标量(Scalar)**:...

Global site tag (gtag.js) - Google Analytics