oracle binary_integer pls_integer,oracle中binaryinteger与plsinteger的区别

41528d3028836879cd698677c3999917.giforacle中binaryinteger与plsinteger的区别

Oracle 中 Binary_Integer 与 Pls_Integer 的区别Binary_Integer 与 Pls_Integer 都是整型类型. Binary_Integer 类型变量值计算是由 Oracle 来执行,不会出现溢出,但是执行速度较慢,因为它是由 Oracle 模拟执行。而 Pls_Integer 的执行是由硬件即直接由 CPU 来运算,因而会出现溢出,但其执行速度较前者快许多。 一、概述 在 ORACLE8 中定义了:标量(SCALAR) 、复合(COMPOSITE)、引用(REFERENCE)和 LOB 四种数据类型,下面详细介绍它们的特性。 二、标量(SCALAR) 合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。 数字,它有三种基本类型--NUMBER、PLS_INTEGER 和 BINARY_INTENER。NUMBER 可以描述整数或实数,而 PLS_INTEGER 和 BINARY_INTENER 只能描述整数。 NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是 NUMBER(P,S),P 是精度,最大 38 位,S 是刻度范围,可在-84.127 间取值。例如:NUMBER(5,2)可以用来存储表示 -999.99.999.99 间的数值。P 、 S 可以在定义是省略,例如:NUMBER(5)、NUMBER 等; BINARY_INTENER 用来描述不存储在数据库中,但是需要用来计算的带符号的整数值。它以 2 的补码二进制形式表述。循环计数器经常使用这种类型。 PLS_INTEGER 和 BINARY_INTENER 唯一区别是在计算当中发生溢出时,BINARY_INTENER型的变量会被自动指派给一个 NUMBER 型而不会出错,PLS_INTEGER 型的变量将会发生错误。 字符,包括 CHAR、VARCHAR2(VARCHAR)、LONG、NCHAR 和 NVARCHAR2 几种类型。 CHAR,描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。它的声明方式如下 CHAR(L),L 为字符串长度,缺省为 1,作为变量最大 32767 个字符,作为数据存储在 ORACLE8 中最大为 2000。 VARCHAR2(VARCHAR),描述变长字符串。它的声明方式如下 VARCHAR2(L),L 为字符串长度,没有缺省值,作为变量最大 32767 个字节,作为数据存储在 ORACLE8 中最大为4000。在多字节语言环境中,实际存储的字符个数可能小于 L 值,例如:当语言环境为中文 (SIMPLIFIED CHINESE_CHINA.ZHS16GBK)时,一个 VARCHAR2(200)的数据列可以保存 200个英文字符或者 100 个汉字字符。 LONG ,在数据库存储中可以用来保存高达 2G 的数据,作为变量,可以表示一个最大长度为 32760 字节的可变字符串。 NCHAR、NVARCHAR2,国家字符集,与环境变量 NLS 指定的语言集密切相关,使用方法和 CHAR、VARCHAR2 相同。 行,包括 RAW 和 LONG RAW 两种类型。用来存储二进制数据,不会在字符集间转换。RAW,类似于 CHAR,声明方式 RAW(L),L 为长度,以字节为单位,作为数据库列最大2000,作为变量最大 32767 字节。 LONG RAW,类似于 LONG,作为数据库列最大存储 2G 字节的数据,作为变量最大32760 字节。 日期,只有一种类型--DATE ,用来存储时间信息,站用 7 个字节(从世纪到秒) ,绝对没有“千年虫”问题。 行标识,只有一种类型--ROWID ,用来存储“行标识符” ,可以利用 ROWIDTOCHAR 函数来将行标识转换成为字符。 布尔,只有一种类型--BOOLEAN,仅仅可以表示 TRUE、FALSE 或者 NULL。 可信,只有一种类型--MLSLABEL,可以在 TRUSTED ORACLE 中用来保存可变长度的二进制标签。在标准 ORACLE 中,只能存储 NULL 值。 三、复合(COMPOSITE) 标量类型是经过预定义的,利用这些类型可以衍生出一些复合类型。主要有记录、表。记录,可以看作是一组标量的组合结构,它的声明方式如下: TYPE record_type_name IS RECORD ( filed1 type1 [NOT NULL] [:=expr1] . filedn typen [NOT NULL] [:=exprn] ) 其中,record_type_name 是记录类型的名字。( 是不是看着象 CREATE TABLE?)引用时必须定义相关的变量,记录只是 TYPE,不是 VARIABLE。 表,不是物理存储数据的表,在这里是一种变量类型,也称为 PL/SQL 表,它类似于 C语言中的数组,在处理方式上也相似。它的声明方式如下: TYPE table_type_name IS TABLE OF scalar_type INDEX BY BINARY_INTENER; 其中,table_type_name 是类型的名字,scalar_type 是一种标量类型的类型声明。引用时也必须定义相关的变量。表和数组不同,表有两列,KEY 和 VALUE,KEY 就是定义时声明的 BINARY_INTENER,VALUE 就是定义时声明的 scalar_type。 除了记录和表之外,还有对象类型、集合(嵌套表和 VARRAYS)等类型,这些将专门讲解。 四、引用(REFERENCE) 在 PL/SQL8.0 之前,只有一种类型--REF CURSOR,也就是游标。它的定义较为简单, CURSOR cursor_name IS select .from.; 在 PL/SQL8.0 之后,引入了 REF 类型,它指向一个对象。这种类型将单独讲解。 (等我弄明白再说,免得在高人面前) 五、LOB 型 LOB 变量主要是用来存储大量数据的数据库字段,最大可以存储 4G 字节的内容( 这么大,存 VCD?,浪费!) 。主要有: CLOB :和 ORACLE7 中的 LONG 类型相似,存储单字节字符数据。(别用来存中文喔。。 。) NCLOB :用来存储定宽多字节字符数据。(例如:存《啸傲江湖》就挺好) BLOB:和 LONG RAW 相似,用来存储无结构的二进制数据。 BFILE:它用来允许 ORACLE 对数据库外存储的大型二进制文本进行只读形式的访问。 六、其他 其实在完成对标量变量的理解之后,基本上可以应付 C/S 模式下的常规数据库应用所需了,后续的类型说实话,我玩了 5 年 ORACLE,都很少用到。

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

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

相关文章

梁单元分析matlab,[FEM][有限元][编程][Matlab][Code by myself] 2D Timoshenko梁单元

(有空和小伙伴一起写写有限元程序)程序作者 ( Author )JiDong Cui (崔济东)1, XueLong Shen (沈雪龙)21.广州容柏生建筑结构设计事务所;2.华南理工大学建筑设计研究院基本概念 ( Concept )欧拉梁单元基于一定的假设(Kirchhoff假设),在梁的高度远小于其跨…

oracle保存type类型,oracle type类型

--创建类型说明***********************************************************create or replace type dept_type as object(--成员变量h_deptno number(2),h_dname varchar2(14),h_loc varchar2(13),--成员函数、过程member procedure changedept(name in varchar2,loc in var…

Oracle函数的信息,Oracle中获取会话信息的两个函数分享

1、 USERENV(OPTION)  返回当前的会话信息.OPTION‘ISDBA‘若当前是DBA角色,则为TRUE,否则FALSE.OPTION‘LANGUAGE‘返回数据库的字符集.OPTION‘SESSIONID‘为当前会话标识符.OPTION‘ENTRYID‘返回可审计的会话标识符.OPTION‘LANG‘返回会话语言名称的ISO简记.OPTION‘INS…

oracle分组后伪列,Oracle伪列和伪表和分组函数(row_number,Rank)

oracle的伪列以及伪表oracle系统为了实现完整的关系数据库功能,系统专门提供了一组成为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象时由我们完成的,而是在我们建立时由Oracle完成的。Oracle目前有以下伪列:一、伪列&#…

linux内核分为四个子系统,linux操作系统的内核有哪几个子系统构成,简要说明各子系统的作用...

Linux是一个一体化内核(monolithic kernel)系统。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。设备驱动程序可以完全访问硬…

linux运行搜狗拼音,Linux 搜狗输入法的安装(Ubuntu版)

1、首先从搜狗官网下载搜狗输入法Linux版本的安装包2、按ctrl alt T 打开Linux终端3、安装搜狗输入法: sudo dkpg -i xxx.deb, 如果报错,主要是由于两个原因:a、权限不够,可以通过获取root权限,命令‘su’;…

2023年腾讯云轻量应用服务器测评2核2G4M带宽

腾讯云轻量应用服务器测评2核2G4M带宽88元一年,2核CPU、2G内存、3M带宽,腾讯云轻量应用服务器(Tencent Cloud Lighthouse)是一款开箱即用的云服务器产品,面向轻量应用场景,旨在为中小企业和开发者提供便捷高…

linux 运行unix elf,在Linux中ELF可执行问题

我在Linux上有一些关于ELF可执行文件的奇怪问题.这是我的系统(uname -a):Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1deb8u2 (2016-01-02) x86_64 GNU/Linux我有以下程序(test.asm),我使用NASM组装它:; program just exits with code 0 using Li…

linux配置远程计算机别名没用,linux – `ssh foo“”`没有加载远程别名?

摘要:为什么会失败$ssh foo R --version | head -n 1bash: R: command not found但这成功了$ssh foo grep -nHe bashrc ~/.bash_profile/home/me/.bash_profile:3:# source the users .bashrc if it exists/home/me/.bash_profile:4:if [ -f "${HOME}/.bashrc&…

linux修改upd53端口,Centos iptables打开端口53

我在我的centos机器上打开端口53时遇到问题,用于DNS配置.这是我的iptables配置-A INPUT -p udp -m udp --sport 53 -j ACCEPT-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT当我运行机器的nmap扫描时,只有端口80显示为打开.我错过了什么吗?编辑:完全ipta…

centos arm linux gcc,CentOS安装arm-linux-gcc交叉编译器

(注:首先需要明确需要安装centos系统的位数,即是32位的还是64位的。)1、下载并解压文件:下载arm-linux-gcc-4.4.3.tgz到任意的目录下,进入这个文件夹输入命令:# tar xvzf arm-linux-gcc-4.4.3.tgz –C / 【解压文件到…

深度linux deepin 12.12,Linux Deepin 12.12 Beta 发布

一、概述两个月前,我们发布了搭载独立开发的“深度桌面环境”的 Linux Deepin 12.12 Alpha 版本。现在,Linux Deepin 12.12 Beta 版本来了!Beta 版本集成了 Linux Deepin 两个多月以来的工作成果,带来了许多激动人心的新功能与特性…

linux c 编程手册,Linux C/C++编程手册查阅方法

Linux Programmers Manual & User Commandshttps://www.kernel.org/doc/man-pages/ 搜索框输入epoll调用搜索引擎查找在线搜索查看man手册(比如查epoll),可以直接收藏,方便下次点击搜索:http://global.bing.com/search?qsite:man7.org epollThe Linux Kernel APIhttps://w…

linux tcp连接计算机,计算机基础知识——linux socket套接字tcp连接分析

2016.7.4今天晚上对项目顶层文件(daemon)进行了分析,对其中的TCP连接进行具体的代码级分析。1、需求分析首先得知道我们这里为什么要用TCP连接,我们的整个测试系统是由上位机作为客户端,发送测试文件,测试命令给我们测试程序上&am…

单片机c语言数值转换为字符,将C语言宏定义数值转换成字符串!

hibernate常用API详解根据个人使用Hibernate的经验,介绍一下Hibernate的多种不同的查询和CUD操作,这些东西在日常开发中非常常用,希望对大家有所帮助. 以下示例均以两张表为例:member和userinfo ...Dom4J解析xml文件动态转换为List<Bean>或者M…

定时器驱动数码管c语言程序,74hc595驱动数码管时间程序

74hc595驱动数码管时间程序这里是电路图:下面是51单片机驱动74hc595芯片的程序:#include //包含51单片机的头文件#include#define uint unsigned int#define uchar unsigned char//sbit sin_595 P1^0;//sbit rclk_595 P…

石油大学c语言考试答案,中石油华东2012春《C语言》在线答案

);! X" l4 d0 m5 T0 A 满分:2 分* }4 x X$ a& t, l% i3. 当对两个字符串进行比较时,应该使用的函数是A. strcat, y, Z- S p t! k! GB. strcmp2 } R% s8 P* Z/ yC. strcpy, i$ q. b5 P8 m j v1 k3 H2 W3 mD. strlen* I B S…

汇编与c语言互调实验报告,C语言和汇编语言的互调.doc

C语言和汇编语言的互调实 验 报 告课程名称: C语言和汇编语言的互调姓名学号组员实验名称C语言和汇编语言的互调实验内容:(实验原理、实验步骤、数据处理、误差分析、程序算法、系统结构等)实验原理C语言参数传递原则1、函数的返回值通过AX寄存器&#x…

c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例

详解C语言用malloc函数申请二维动态数组的实例C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单。Sample one#include int main(){char * p(char *)malloc(sizeof(char)*5);//申请包含5个字符型的数组free(p);return 0;}是否申请二维动…

c语言取子程序地址,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*************************************************************************************** 外部中断0实验 *实现现象:下载程序后按下K3按键可以对D1小灯状态取反。注意事项:无。***********************…