最近在用Oracle的bitand函数是遇到了一个奇怪的现象:

declare

n number default

374123538;

val number;

begin

dbms_output.enable;

val := bitand(n,

16777215);

dbms_output.put_line(val);

end;

/

结果正确:

5024786

PL/SQL procedure successfully completed

然后修改这个n值:

declare

n number default

3741235380;

val number;

begin

dbms_output.enable;

val := bitand(n,

16777215);

dbms_output.put_line(val);

end;

/

结果出错:

ORA-01426: 数字溢出

ORA-06512: 在line 6

然后我将用法修改:

declare

n number default 3741235380;

val number;

begin

dbms_output.enable;

--val := bitand(n,

16777215); select bitand(n,

16777215) into val from dual; dbms_output.put_line(val);

end;

/

结果又正确:

16693428

PL/SQL procedure successfully completed

奇怪,难度Oracle的PL/SQL中select ... into...和直接赋值不同?

就这个问题我在网上搜索,还发现有人遇到:

select bitand(1,2) from dual会报错:

ORA-00932: 数据类型不一致

用一个函数将bitand包含起来即能解决该问题

例:

select to_char(bitand(1,2)) from dual;

select to_number(bitand(1,2)) from dual;

但我没有遇到,可能是Oracle版本的原因。

真是一个奇怪的问题!

bit类型在oracle,奇怪的Oracle bitand函数相关推荐

  1. oracle函数中bitand,Oracle bitand()函数使用方法

    bitand(    )    函数  返回两个数值型数值在按位进行    AND    运算后的结果.   语法 BITAND(nExpression1,    nExpression2) 参数 n ...

  2. oracle中的and用法,Oracle bitand( )函数简介

    Oracle bitand( )函数在Oracle数据库中是很常见的,下面就为您详细介绍Oracle bitand( )函数的用法,如果您感兴趣的话,不妨一看. Oracle bitand( )函数: ...

  3. Oracle bitand( )函数简介

    Oracle bitand( )函数在Oracle数据库中是很常见的,下面就为您详细介绍Oracle bitand( )函数的用法,如果您感兴趣的话,不妨一看. Oracle bitand( )函数: ...

  4. Oracle中bitand函数的一次妙用

    由于项目需要,经理要求我做一个可多选的下拉选框.我一听,so easy, 于是屁颠屁颠跑回座位,然后想想如何方便顺序的解决掉这个问题. 思路如下:为了简化,有字典表 (表 T1) 另外还有张表需要用到 ...

  5. mysql oracle clob_MYSQL 转 ORACLE CLOB类型

    现在有一个MySQL的表,其中一个字段类型是longtext.在Oracle中有一个相同的表,对应这个字段的类型是CLOB.两种数据库之之间建立了一个dblink,oracle可以通过dblink访问 ...

  6. mybitas oracle.sql.clob,Oracle使用简单函数

    本章将介绍Oracle数据库的内置函数.函数可以接受零个或多个参数,并返回一个输出参数.在Oracle数据库中可以使用两种主要类型的参数: 单行函数(single row function)单行函数同 ...

  7. oracle的len,oracle的len

    oracle 数据库字符集研究 下篇 整理自:http://blog.itpub.net/519536/viewspace-615379/ 自从选用了AL32UTF8字符集做为生产数据库字符集之后,就 ...

  8. oracle技术之Oracle 跟踪事件(一)

    一.Oracle跟踪文件 Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日志切换.错误消息 ...

  9. cmd删除oracle监听,oracle数据库监听删除

    oracle 10G for linux常用命令 oracle 10G for linux常用命令 首先以Oracle用户登录 1. $/oracle/oracle/app/product/101/b ...

最新文章

  1. 【转载】Linux系统与性能监控
  2. java方法定义 与调用_Java方法的定义及调用
  3. Java 连接 MS sql Server 2005
  4. Android 开发, Android 安全 精品资料收集 (持续更新...)
  5. mysql集合与集合的子集_大集合List分为多个子集合
  6. 简单易懂的 pwnable.kr 第二题[collision]Writeupt
  7. Mysql 的隔离级别与锁
  8. 迁移数据库到SQL on Linux Docker
  9. 前端学习(2665):完成vue3.0的todolist添加
  10. 【BZOJ 1449】 1449: [JSOI2009]球队收益 (最小费用流)
  11. C语言字母的压缩,C语言字符串快速压缩算法代码
  12. oralce insert 时,出现的两个错误,以及解决方法
  13. 遂宁让“智慧城市”融入绿色经济发张
  14. 使用 /proc 文件系统来控制系统
  15. 从零开始学android编程_从零开始学机械,如何画好一张零件图?图文详解!-UG编程...
  16. Python文件运行时报TabError: inconsistent use of tabs and spaces in indentation
  17. 网页三剑客8免费下载加序列号
  18. 【java】几种跳出 for循环的方法
  19. 将字符串数组String[]转换成List的三种方法
  20. 实时性是指计算机多媒体系统中声音及活动,《计算机应用基础》电子教案

热门文章

  1. windows上编译zlib-1.2.8
  2. 解决若干WTL与VS2010的兼容问题(如error MSB6006: “cmd.exe”)
  3. SQL语言的事务机制_转摘
  4. [高效时间管理]复盘篇
  5. stunnel使用详解
  6. ubantu 添加防火墙策略_Ubuntu 14.04 配置iptables防火墙
  7. openwrt 格式化_OPENWRT扩展系统到U盘
  8. RT-Thread I/O设备模型
  9. c语言字符串未初始化strcat,C语言中字符串常用函数strcat与strcpy的用法介绍
  10. php 简析对象,PHP白盒审计工具RIPS源码简析