Oracle 存储过程2: PL/SQL数据类型
一.标量数据类型
标量数据类型的变量只有一个值,且内部没有分量。标量数据类型包括数字型,字符型,日期型和布尔型。这些类型有的是 Oracle SQL 中有的数据类型,有的是 PL/SQL 自身附加的数据类型。下面我们来详细介绍一下常用的的标量数据类型:
1、数值类型:主要用来存储数值类型的数据。常用的有NUMBER、PLS_INTEGER、BINARY_INTEGER和SIMPLE_INTEGER类型。
NUMBER:可以存储小数和整数类型数据,格式为NUMBER(p,s),其中p表示的是精度(既是位数的长度),s表示的是小数点后的位数。例如:number(3,2)表示的范围-9.99—9.99。
PLS_INTEGER、BINARY_INTEGER、SIMPLE_INTEGER:主要用来存储整数类型,它们存储整数的范围都是-(2^31)...(2^31-1)。但是BINARY_INTEGER发生内存溢出的时候会给它分配一个number类型的数据,而PLS_INTEGER会直接抛异常报错,SIMPLE_INTEGER是PLS_INTEGER的一个子类型,它不允许存在NULL值数据。
2、字符类型:用来存储单个字符或字符串。主要有的类型有如下类型:
CHAR类型:固定长度的字符串,CHAR(n):默认长度是1,当字符串长度小于n时,会自动右补空格,所以在取数据的时候要注意补空格。
VARCHAR2类型:该类型存储可变长度的字符串VARCHAR2(n),最大存储的长度为4000个字节。当字符串长度小于n时,不会补齐空格。
LONG类型:该类型存储可变长度的字符串,不同于VARCAHR2类型,它对于字段的存储长度可达2G,但是作为PL/SQL变量,和VARCHAR2一样,只能存储最大32767字节。
3、时间类型:主要和SQL中的时间类型一致,有DATE和TIMESTAMP两种时间类型。
4、布尔类型:PL/SQL程序中的逻辑判断的值有:TRUE、FALSE、NULL值。
二.引用数据类型
引用数据类型是PL/SQL程序语言特有的数据类型,是用来引用数据库当中的某一行或者某个字段作为数据类型的声明。其中有两种引用类型:%TYPE和%ROWTYPE
1.%TYPE类型:
引用数据库中表的某列的类型作为某变量的数据类型,也可以直接引用PL/SQL程序中某个变量作为新变量的数据类型。下面我们通过一个案例做下测试:
declare
ls_stuname stuinfo.stuname%type;--通过学生姓名字段声明ls_stunamebegin select t.stuname into ls_stuname from student.stuinfo t where t.stuid = 'SC201801006'; dbms_output.put_line(ls_stuname);exception when no_data_found then dbms_output.put_line('该学生在学生信息表中找不到');end;declare
ls_stuinfo stuinfo%rowtype;xsjbxx varchar2(50);begin select t.* into ls_stuinfo from stuinfo t where t.stuid='SC201801006'; xsjbxx:='姓名:' ||ls_stuinfo.stuname || ' 学号:' ||ls_stuinfo.stuid || ' 年龄:' ||ls_stuinfo.age; dbms_output.put_line(xsjbxx);exception when no_data_found then dbms_output.put_line('该学生在学生信息表中找不到');end;Oracle 存储过程2: PL/SQL数据类型的更多相关文章
- 【PL/SQL系列】Oracle存储过程使用动态SQL
Oracle存储过程相信大家都比较了解,下面就为您介绍Oracle存储过程使用动态SQL的方法,希望对您能够有所帮助. CREATE OR REPLACE PROCEDURE P_STAT_SCORE ...
- 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...
- oracle数据库之PL/SQL 块结构和组成元素
一.PL/SQL 块 (一)PL/SQL 程序由三个块组成,即声明部分.执行部分.异常处理部分 PL/SQL 块的结构如下: 1.DECLARE /* 声明部分: 在此声明 PL/SQL 用到的变量, ...
- Oracle数据库之PL/SQL触发器
Oracle数据库之PL/SQL触发器 1. 介绍 触发器(trigger)是数据库提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是 ...
- Oracle数据库之PL/SQL包
Oracle数据库之PL/SQL包 1. 简介 包(PACKAGE)是一种数据对象,它是一组相关过程.函数.变量.常量和游标等PL/SQL程序设计元素的组合,作为一个完整的单元存储在数据库中,用名称来 ...
- Oracle数据库之PL/SQL过程与函数
Oracle数据库之PL/SQL过程与函数 PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保存到数据 ...
- Oracle数据库之PL/SQL程序设计简介
PL/SQL程序设计简介 一.什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写. ORACLE的SQL ...
- ORACLE中的PL/SQL
一. 1.过程,函数,触发器是pl/sql编写. 2. 过程函数触发器是在Oracle中. 3.pl/sql是非常强大的数据库过 ...
- 《oracle每日一练》免安装Oracle客户端使用PL/SQL
免安装Oracle客户端使用PL/SQL Oracle客户端挺招人烦的,部署连接它的应用通常需要先安装它的客户端,安装程序要求在目标机器上写注册表,假设你没有洁癖的话,你仍可能被下面的事情绊住:当你的 ...
- Oracle 客户端安装 + pl/sql工具安装配置
Oracle 客户端安装 + pl/sql工具安装配置 下载oracle客户端,并在本地安装. 11g下载地址为: http://www.oracle.com/technetwork/databas ...
随机推荐
- C++基础复习题(笔试题)
C++基础~for循环:选择,判断 HELLO,亲爱的小朋友! 我们准备 35个选择题,对for循环及之前的内容进行一个简单的复习,快来看一下吧! 顺序&选择结构 1.对于C++中变量的命名规 ...
- 前端日期控件,在设置了readonly的情况,还能选择日期的解决办法
去掉只读和增加onclick属性: $("#date").removeAttr("readonly"); $("#date").attr(& ...
- 访问第三方接口带Authorization认证
第一种方式 HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Authorization", " ...
- SAR成像(一):线性调频信号(LFM)和脉冲压缩
文章仅为个人理解,如有不妥之处欢迎指正. 1.脉冲压缩目的和意义 在雷达系统中,距离分辨率是很重要的一项性能指标,它决定了雷达能分辨两个单元之间的最小距离,更通俗的,即雷达分辨相离较近物体的能力.而决 ...
- nginx转发tomcat之https不生效
1.修改tomcat配置server.xml,让它从请求头中的X-Forwarded-Proto读取 <!-- xpath://Server/Service/Engine/Value --> ...
- CentOS 7.9 环境下部署 Nginx 服务
sudo setenforce Permissive sudo vi /etc/selinux/config SELINUX=permissive sudo systemctl stop firewa ...
- 【电路理论】Flyback dc-dc convertor 反激式dc-dc变换器
最近在学dc-dc电源时,遇到Flyback电路的,感觉云里雾里,不太明白,四处翻阅,方才有所理解,记录一下 一般Flyback convertor的拓扑如下 认为,当VT导通时,原边变压器储能,由于 ...
- SpringMVC学习day03
第1个springmvc程序 这是根据狂神说视频和资料学习的,用于加强自己的记忆 入门学习 1. 步骤: 1.新建一个Moudle , springmvc-02-hello , 添加web的支持! 2 ...
- GIT Authentication failed for错误问题处理
1. Settings ==> Developer settings ==> Personal access tokens ==> Generate new token 生成新的 ...
- Day20:update功能的实现
今日完成的任务: 1.将最初设想的消息界面删除,删去message和chat等无参数跳转界面,并在物品详情中增加[联系方式]一栏供大家线下交易使用. 最终完成界面如下 2.实现本个小程序最后一个功能- ...