Oracle中的二进制、八进制、十进制、十六进制相互转换函数

原文:Oracle中的二进制、八进制、十进制、十六进制相互转换函数

Oracle中的二进制、八进制、十进制、十六进制相互转换函数

今天在网上看到一篇关于在oracle中对各种进制数进行转换的帖子,觉得不错,也比较全面,几乎涵盖了经常用到的所有转换。转过来学习一下,也方便以后查询。

==================================================================================

大家经常遇到进制转换的问题,网上搜到的转换只是部分十进制与其它进制的转换,所以我把自己写的转换函数提供给大家,4种进制共12个转换函数,虽然有的转换直接使用to_char()和to_number()就可以实现,但我还是把它们整理到一起,使用和查找都方便。

部分函数需要先创建type_str_agg类型和f_stragg函数才能使用,这两个对象的代码也附在之后。

CREATE OR REPLACE PACKAGE pkg_number_trans IS

FUNCTION f_bin_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2;
  
  FUNCTION f_bin_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2;
  
  FUNCTION f_bin_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2;

FUNCTION f_oct_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2;
  
  FUNCTION f_oct_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2;

FUNCTION f_oct_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2;
  
  FUNCTION f_hex_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2;

FUNCTION f_hex_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2;

FUNCTION f_hex_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2;
  
  FUNCTION f_dec_to_bin(p_int IN VARCHAR2) RETURN VARCHAR2;

FUNCTION f_dec_to_oct(p_int IN VARCHAR2) RETURN VARCHAR2;

FUNCTION f_dec_to_hex(p_int IN VARCHAR2) RETURN VARCHAR2;
  
END pkg_number_trans;
/
CREATE OR REPLACE PACKAGE BODY pkg_number_trans IS

FUNCTION f_bin_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_bin_to_oct
    -- 对象描述: 二进制转换八进制
    -- 输入参数: p_str 二进制字符串
    -- 返回结果: 八进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_bin_to_oct(‘11110001010‘) FROM dual;
    -- 备    注: 需要定义f_stragg函数和type_str_agg类型
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
    v_bin    VARCHAR2(4000);
  BEGIN
    v_bin := substr(‘00‘ || p_str, -3 * ceil(length(p_str) / 3));
    SELECT f_stragg(data1) INTO v_return
      FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 3 + 1, 3))
                     WHEN ‘000‘ THEN ‘0‘
                     WHEN ‘001‘ THEN ‘1‘
                     WHEN ‘010‘ THEN ‘2‘
                     WHEN ‘011‘ THEN ‘3‘
                     WHEN ‘100‘ THEN ‘4‘
                     WHEN ‘101‘ THEN ‘5‘
                     WHEN ‘110‘ THEN ‘6‘
                     WHEN ‘111‘ THEN ‘7‘
                   END) data1
              FROM dual
            CONNECT BY rownum <= length(v_bin) / 3);
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_bin_to_oct;

FUNCTION f_bin_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_bin_to_dec
    -- 对象描述: 二进制转换十进制
    -- 输入参数: p_str 二进制字符串
    -- 返回结果: 十进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_bin_to_dec(‘11110001010‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return  VARCHAR2(4000);
  BEGIN
    SELECT SUM(data1) INTO v_return
      FROM (SELECT substr(p_str, rownum, 1) * power(2, length(p_str) - rownum) data1
              FROM dual
            CONNECT BY rownum <= length(p_str));
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_bin_to_dec;

FUNCTION f_bin_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_bin_to_hex
    -- 对象描述: 二进制转换十六进制
    -- 输入参数: p_str 二进制字符串
    -- 返回结果: 十六进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_bin_to_oct(‘11110001010‘) FROM dual;
    -- 备    注: 需要定义f_stragg函数和type_str_agg类型
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
    v_bin    VARCHAR2(4000);
  BEGIN
    v_bin := substr(‘000‘ || p_str, -4 * ceil(length(p_str) / 4));
    SELECT f_stragg(data1) INTO v_return
      FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 4 + 1, 4))
                     WHEN ‘0000‘ THEN ‘0‘
                     WHEN ‘0001‘ THEN ‘1‘
                     WHEN ‘0010‘ THEN ‘2‘
                     WHEN ‘0011‘ THEN ‘3‘
                     WHEN ‘0100‘ THEN ‘4‘
                     WHEN ‘0101‘ THEN ‘5‘
                     WHEN ‘0110‘ THEN ‘6‘
                     WHEN ‘0111‘ THEN ‘7‘
                     WHEN ‘1000‘ THEN ‘8‘
                     WHEN ‘1001‘ THEN ‘9‘
                     WHEN ‘1010‘ THEN ‘A‘
                     WHEN ‘1011‘ THEN ‘B‘
                     WHEN ‘1100‘ THEN ‘C‘
                     WHEN ‘1101‘ THEN ‘D‘
                     WHEN ‘1110‘ THEN ‘E‘
                     WHEN ‘1111‘ THEN ‘F‘
                   END) data1
              FROM dual
            CONNECT BY rownum <= length(v_bin) / 4);
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_bin_to_hex;

FUNCTION f_oct_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_oct_to_bin
    -- 对象描述: 八进制转换二进制
    -- 输入参数: p_str 八进制字符串
    -- 返回结果: 二进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_oct_to_bin(‘3612‘) FROM dual;
    -- 备    注: 需要定义f_stragg函数和type_str_agg类型
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
  BEGIN
    SELECT to_char(to_number(f_stragg(data1))) INTO v_return
      FROM (SELECT (CASE upper(substr(p_str, rownum, 1))
                     WHEN ‘0‘ THEN ‘000‘
                     WHEN ‘1‘ THEN ‘001‘
                     WHEN ‘2‘ THEN ‘010‘
                     WHEN ‘3‘ THEN ‘011‘
                     WHEN ‘4‘ THEN ‘100‘
                     WHEN ‘5‘ THEN ‘101‘
                     WHEN ‘6‘ THEN ‘110‘
                     WHEN ‘7‘ THEN ‘111‘
                   END) data1
              FROM dual
            CONNECT BY rownum <= length(p_str));
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_oct_to_bin;

FUNCTION f_oct_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_oct_to_dec
    -- 对象描述: 八进制转换十进制
    -- 输入参数: p_str 八进制字符串
    -- 返回结果: 十进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_oct_to_dec(‘3612‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return  VARCHAR2(4000);
  BEGIN
    SELECT SUM(data1) INTO v_return
      FROM (SELECT substr(p_str, rownum, 1) * power(8, length(p_str) - rownum) data1
              FROM dual
            CONNECT BY rownum <= length(p_str));
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_oct_to_dec;
  
  FUNCTION f_oct_to_hex(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_oct_to_bin
    -- 对象描述: 八进制转换十六进制
    -- 输入参数: p_str 八进制字符串
    -- 返回结果: 十六进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_oct_to_hex(‘3612‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
    v_bin    VARCHAR2(4000);
  BEGIN
    SELECT pkg_number_trans.f_oct_to_bin(p_str) INTO v_bin FROM dual;
    SELECT pkg_number_trans.f_bin_to_hex(v_bin) INTO v_return FROM dual;
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_oct_to_hex;

FUNCTION f_dec_to_bin(p_int IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_dec_to_bin
    -- 对象描述: 十进制转换二进制
    -- 输入参数: p_str 十进制字符串
    -- 返回结果: 二进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_dec_to_bin(‘1930‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
    v_hex    VARCHAR2(4000);
  BEGIN
    SELECT pkg_number_trans.f_dec_to_hex(p_int) INTO v_hex FROM dual;
    SELECT pkg_number_trans.f_hex_to_bin(v_hex) INTO v_return FROM dual;
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_dec_to_bin;
  
  FUNCTION f_dec_to_oct(p_int IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_dec_to_oct
    -- 对象描述: 十进制转换八进制
    -- 输入参数: p_str 十进制字符串
    -- 返回结果: 八进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_dec_to_oct(‘1930‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
    v_bin    VARCHAR2(4000);
  BEGIN
    SELECT pkg_number_trans.f_dec_to_bin(p_int) INTO v_bin FROM dual;
    v_bin := substr(‘00‘ || v_bin, -3 * ceil(length(v_bin) / 3));
    SELECT f_stragg(data1) INTO v_return
      FROM (SELECT (CASE upper(substr(v_bin, (rownum - 1) * 3 + 1, 3))
                     WHEN ‘000‘ THEN ‘0‘
                     WHEN ‘001‘ THEN ‘1‘
                     WHEN ‘010‘ THEN ‘2‘
                     WHEN ‘011‘ THEN ‘3‘
                     WHEN ‘100‘ THEN ‘4‘
                     WHEN ‘101‘ THEN ‘5‘
                     WHEN ‘110‘ THEN ‘6‘
                     WHEN ‘111‘ THEN ‘7‘
                   END) data1
              FROM dual
            CONNECT BY rownum <= length(v_bin) / 3);
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_dec_to_oct;
  
  FUNCTION f_dec_to_hex(p_int IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_dec_to_oct
    -- 对象描述: 十进制转换十六进制
    -- 输入参数: p_str 十进制字符串
    -- 返回结果: 十六进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_dec_to_hex(‘1930‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
  BEGIN
    SELECT upper(TRIM(to_char(p_int, ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx‘))) INTO v_return FROM dual;
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_dec_to_hex;
  
  FUNCTION f_hex_to_bin(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_dec_to_oct
    -- 对象描述: 十六进制转换二进制
    -- 输入参数: p_str 十六进制字符串
    -- 返回结果: 二进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_hex_to_oct(‘78A‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
  BEGIN
    SELECT to_char(to_number(f_stragg(data1))) INTO v_return
      FROM (SELECT (CASE upper(substr(p_str, rownum, 1))
                     WHEN ‘0‘ THEN ‘0000‘
                     WHEN ‘1‘ THEN ‘0001‘
                     WHEN ‘2‘ THEN ‘0010‘
                     WHEN ‘3‘ THEN ‘0011‘
                     WHEN ‘4‘ THEN ‘0100‘
                     WHEN ‘5‘ THEN ‘0101‘
                     WHEN ‘6‘ THEN ‘0110‘
                     WHEN ‘7‘ THEN ‘0111‘
                     WHEN ‘8‘ THEN ‘1000‘
                     WHEN ‘9‘ THEN ‘1001‘
                     WHEN ‘A‘ THEN ‘1010‘
                     WHEN ‘B‘ THEN ‘1011‘
                     WHEN ‘C‘ THEN ‘1100‘
                     WHEN ‘D‘ THEN ‘1101‘
                     WHEN ‘E‘ THEN ‘1110‘
                     WHEN ‘F‘ THEN ‘1111‘
                   END) data1
              FROM dual
            CONNECT BY rownum <= length(p_str));
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_hex_to_bin;
  
  FUNCTION f_hex_to_oct(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_dec_to_oct
    -- 对象描述: 十六进制转换八进制
    -- 输入参数: p_str 十六进制字符串
    -- 返回结果: 八进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_hex_to_oct(‘78A‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return VARCHAR2(4000);
    v_bin    VARCHAR2(4000);
  BEGIN
    SELECT pkg_number_trans.f_hex_to_bin(p_str) INTO v_bin FROM dual;
    SELECT pkg_number_trans.f_bin_to_oct(v_bin) INTO v_return FROM dual;
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_hex_to_oct;
  
  FUNCTION f_hex_to_dec(p_str IN VARCHAR2) RETURN VARCHAR2 IS
    ----------------------------------------------------------------------------------------------------------------------
    -- 对象名称: f_hex_to_dec
    -- 对象描述: 十六进制转换十进制
    -- 输入参数: p_str 十六进制字符串
    -- 返回结果: 十进制字符串
    -- 测试用例: SELECT pkg_number_trans.f_hex_to_dec(‘78A‘) FROM dual;
    ----------------------------------------------------------------------------------------------------------------------
    v_return  VARCHAR2(4000);
  BEGIN
    SELECT SUM(data1) INTO v_return
      FROM (SELECT (CASE upper(substr(p_str, rownum, 1))
                     WHEN ‘A‘ THEN ‘10‘
                     WHEN ‘B‘ THEN ‘11‘
                     WHEN ‘C‘ THEN ‘12‘
                     WHEN ‘D‘ THEN ‘13‘
                     WHEN ‘E‘ THEN ‘14‘
                     WHEN ‘F‘ THEN ‘15‘
                     ELSE substr(p_str, rownum, 1)
                   END) * power(16, length(p_str) - rownum) data1
              FROM dual
            CONNECT BY rownum <= length(p_str));
    RETURN v_return;
  EXCEPTION
    WHEN OTHERS THEN
      RETURN NULL;
  END f_hex_to_dec;
  
END pkg_number_trans;
/

CREATE OR REPLACE TYPE type_str_agg AS OBJECT
(
  total VARCHAR2(4000),

STATIC FUNCTION odciaggregateinitialize(sctx IN OUT type_str_agg)
    RETURN NUMBER,

MEMBER FUNCTION odciaggregateiterate
  (
    SELF  IN OUT type_str_agg,
    VALUE IN VARCHAR2
  ) RETURN NUMBER,

MEMBER FUNCTION odciaggregateterminate
  (
    SELF        IN type_str_agg,
    returnvalue OUT VARCHAR2,
    flags       IN NUMBER
  ) RETURN NUMBER,

MEMBER FUNCTION odciaggregatemerge
  (
    SELF IN OUT type_str_agg,
    ctx2 IN type_str_agg
  ) RETURN NUMBER
)
/
CREATE OR REPLACE TYPE BODY type_str_agg IS

STATIC FUNCTION odciaggregateinitialize(sctx IN OUT type_str_agg)
    RETURN NUMBER IS
  BEGIN
    sctx := type_str_agg(NULL);
    RETURN odciconst.success;
  END;

MEMBER FUNCTION odciaggregateiterate
  (
    SELF  IN OUT type_str_agg,
    VALUE IN VARCHAR2
  ) RETURN NUMBER IS
  BEGIN
    SELF.total := SELF.total || VALUE;
    RETURN odciconst.success;
  END;

MEMBER FUNCTION odciaggregateterminate
  (
    SELF        IN type_str_agg,
    returnvalue OUT VARCHAR2,
    flags       IN NUMBER
  ) RETURN NUMBER IS
  BEGIN
    returnvalue := SELF.total;
    RETURN odciconst.success;
  END;

MEMBER FUNCTION odciaggregatemerge
  (
    SELF IN OUT type_str_agg,
    ctx2 IN type_str_agg
  ) RETURN NUMBER IS
  BEGIN
    SELF.total := SELF.total || ctx2.total;
    RETURN odciconst.success;
  END;

END;
/

CREATE OR REPLACE FUNCTION f_stragg(p_input VARCHAR2) RETURN VARCHAR2
  PARALLEL_ENABLE
  AGGREGATE USING type_str_agg;
/

时间: 2024-10-03 13:40:04

Oracle中的二进制、八进制、十进制、十六进制相互转换函数的相关文章

二进制,八进制,十进制,十六进制!!!!

一直以为进制转换离我很远,不会碰到这个问题,就算碰到了,百度一下就能解决,所以一直没关注过这个问题.直到有一天,碰到了一个进制转换问题,却不可以用百度...FUCK. 所以总结一下,二进制,八进制,十进制,十六进制如下: * 二进制全是0.1 * 八进制以0开头表示,0-7 * 十进制不能以0开头表示,0-9 * 十六进制以0x开头表示,0-9,A-F java中进制转换: A.十进制转换其他 十进制转成二进制  Integer.toBinaryString(int i) 十进制转成八进制  I

二进制 八进制 十进制 十六进制之间的转换

一. 十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步:将168除以2,商84,余数为0.  第二步:将商84除以2,商42余数为0. 

二进制 八进制 十进制 十六进制

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0. 

(转 枫伶忆)二进制 八进制 十进制 十六进制之间转换

什么是二进制? 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现.当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的.计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0. 信息的存储单位 位(Bit) :度量数据的最小单位 字节(Byte):最常用的基本单位,一个字节有8位 b7  b6 b5 b4 b3 b2 b1

PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载 中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明,主要掌握各进制转换的方法,以应用于实际开发 一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); //输出 11010 decbin (PHP 3, PHP

二进制,八进制,十进制与十六进制之间的相互转换

功能:完成二进制,八进制,十进制与十六进制之间的相互转换(以字符数组形式输入). 要点: 字符数组反序:strrev(char *str); 字符数组转换为十进制整数:atoi(char *str); map容器完成字符到数值的转换: 字符数组完成数值到字符的转换: 1位16进制数可转换为4位2进制数 1位8进制数可转换为3位2进制数 使用右移和与运算代替除法和取余 #include<cstdio> #include<cstring> #include<cstdlib>

PHP函数十进制、二进制、八进制和十六进制转换函数说明

1.十进制转二进制 decbin() 函数,如下实例  echo decbin(12); //输出 1100 echo decbin(26); //输出 11010 2.十进制转八进制 decoct() 函数  echo decoct(15); //输出 17 echo decoct(264); //输出 410 3.十进制转十六进制 dechex() 函数  echo dechex(10); //输出 a echo dechex(47); //输出 2f 4.任意进制转换 base_conve

Int32 最大的数值是多少???(附十进制十六进制相互转换且包含正负数的java代码)

正数转二进制很简单,转十六进制也很简单. 那么负数的情况下呢?在计算机中无法识别你给的符号"+","-",计算机只认识0和1 那么在二进制中如何表示负数. 先简单介绍一下负数如何转二进制,八进制,十六进制: 比如给的是-4 那么先算出+4的二进制表示: 1 0 0 但是请记住我们需要在前面补0,因为在计算机中一个Int32为的数字是一个长度为32的内存空间,计算机眼里 0000 0000 0000 0000 0000 0000 0000 0100  才是4,这是源码

oracle中取前几条数据&amp;TRUNC()函数

在oracle中查表中的前10条数据---- select * from test where rownum <= 10 ;  rownum是把SQL出来的结果进行编号,始终从1开始,常见的用途就是用来分页.类似于MYSQL和SQL SERVER的top. select * from (select a.*,rownum rn from test a) where rn >=10 and rn<=20; 输出10到20条语句.因为rownum本身只能用<=的比较方式,只有转成实例才