返回顶部
首页 > 资讯 > 数据库 >Oracle通过函数进行进制转化
  • 807
分享到

Oracle通过函数进行进制转化

2024-04-02 19:04:59 807人浏览 独家记忆
摘要

十六进制转化为十进制:to_number()sql> select to_number('a','x') from dual; TO_NUMBER('

十六进制转化为十进制:to_number()

sql> select to_number('a','x') from dual;
TO_NUMBER('A','X')
------------------
                10

十进制转化为十六进制:to_char()

SQL> select to_char(10,'xxx') from dual;
TO_CHAR(10,'
------------
   a

二进制没有办法直接转化可以通过函数实现:

十进制转化为二进制

CREATE OR REPLACE FUNCTioN NUMBER_TO_BIT(V_NUM NUMBER)
RETURN VARCHAR IS V_RTN VARCHAR(8);--注意返回列长度
  V_N1  NUMBER;
  V_N2  NUMBER;
BEGIN
V_N1 := V_NUM;
    LOOP
      V_N2  := MOD(V_N1, 2);
      V_N1  := ABS(TRUNC(V_N1 / 2)); --取商的绝对值
      V_RTN := TO_CHAR(V_N2) || V_RTN;
      EXIT WHEN V_N1 = 0;
    END LOOP;
--返回二进制长度
 SELECT lpad(V_RTN,8,0) --八位不足补0
    INTO   V_RTN
    FROM dual;
return V_RTN;
end;

二进制转化为十进制:

CREATE OR REPLACE FUNCTION BIT_TO_NUMBER(P_BIN IN VARCHAR2) RETURN NUMBER 
AS
  V_SQL VARCHAR2(30000) := 'SELECT BIN_TO_NUM(';
  V_RETURN NUMBER;
BEGIN
  IF LENGTH(P_BIN) >= 256 THEN
    RaiSE_APPLICATION_ERROR(-20001, 'INPUT BIN TOO LONG!');
  END IF;
  IF LTRIM(P_BIN, '01') IS NOT NULL THEN
    RAISE_APPLICATION_ERROR(-20002, 'INPUT STR IS NOT VALID BIN 
VALUE!');
  END IF;
  FOR I IN 1 .. LENGTH(P_BIN) LOOP
    V_SQL := V_SQL || SUBSTR(P_BIN, I, 1) || ',';
  END LOOP;
  V_SQL := RTRIM(V_SQL, ',') || ') FROM DUAL';
  EXECUTE IMMEDIATE V_SQL
    INTO V_RETURN;
  RETURN V_RETURN;
END;

创建函数同义词

create public synonym number_to_bit for number_to_bit;
grant execute on number_to_bit to public

十六转二和二转十六,则可以结合十转十六函数和二转十函数进行,这里不在额外举例。


ASCII码及oracle元数据转换函数:RAWTOHEX和HEXTORAW

SQL> select rawtohex(1) from dual;
RAWTOHEX(1)
------------
C102

SQL> select rawtohex('1') from dual;
RAWTOH
------
31

SQL> select rawtohex('a') from dual;
RAWTOH
------
61

SQL> select rawtohex('A') from dual;
RAWTOH
------
41

SQL> select hextoraw('A') from dual;
HE
--
0A

SQL> select hextoraw('1') from dual;
HE
--
01


您可能感兴趣的文档:

--结束END--

本文标题: Oracle通过函数进行进制转化

本文链接: https://lsjlt.com/news/43694.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle通过函数进行进制转化
    十六进制转化为十进制:to_number()SQL> select to_number('a','x') from dual; TO_NUMBER('...
    99+
    2024-04-02
  • Oracle中通过函数实现二、八、十、十六进制任意转换
    说明:本文主要参考于: http://www.eygle.com/archives/2004/06/oracle_howto_convert.html 一、先创建两个基本的进制转换函数: &n...
    99+
    2024-04-02
  • php进制转化函数有哪些
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php进制转化函数1、bindec()函数--二进制数转换为十进制可以使用 bindec(二进制字符串) 函数,它可把二进制数转换为十进制数。<php echo ...
    99+
    2021-10-11
    php 进制转化
  • php进制转化函数怎么用
    这篇文章主要介绍了php进制转化函数怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php进制转化函数怎么用文章都会有所收获,下面我们一起来看看吧。php进制转化函数有:1、bindec()函数,可将二进制...
    99+
    2023-06-29
  • sql server如何通过pivot对数据进行行列转换(进阶)
    脚本: declare @n int = 2 create table #t1 ( [月份] nvarchar(50), [业务员] nvarchar(50), [金额] int ) insert ...
    99+
    2016-08-13
    sql server如何通过pivot对数据进行行列转换(进阶)
  • golang 进制转化
    golang 是一门非常优秀的编程语言,其强大的功能和简洁的语法使得它成为了越来越多开发者的选择。在 golang 中,进制转化是一个非常基础、常用的操作,下面我们来一起了解一下 golang 中的进制转换。在 golang 中,常用的进制...
    99+
    2023-05-16
  • sql server如何通过pivot对数据进行行列转换
    脚本: create table #t ( [员工工号] nvarchar(50), [员工姓名] nvarchar(50), [月份] nvarchar(50), [工资] int ) in...
    99+
    2022-03-26
    sql server如何通过pivot对数据进行行列转换
  • mysql如何进行进制转换
    小编给大家分享一下mysql如何进行进制转换,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! mysql进制转换方法:1、利用“bin(值)”,可将十进...
    99+
    2024-04-02
  • php十进制怎么转化为二进制
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php十进制怎么转化为二进制decbin() 函数把十进制数转换为二进制数。如需把二进制转换为十进制,请查看 bindec() 函数语法decbin...
    99+
    2015-01-26
    php
  • php十进制如何转化为二进制
    本文小编为大家详细介绍“php十进制如何转化为二进制”,内容详细,步骤清晰,细节处理妥当,希望这篇“php十进制如何转化为二进制”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在PHP中,可以利用decbi ...
    99+
    2023-06-29
  • Oracle cast函数对用户数据进行类型转换
    一、cast函数    cast函数的作用是对用户输入的数据进行数据类型转换,比如用户数据的数据时number类型,小数位数是3位,我们可以将用户数据转换成×××数据...
    99+
    2024-04-02
  • python使用hex函数将10进制转换为16进制
    hex:hex()函数的作用:hex:hex()函数是将10进制整数转换成16进制,并以字符串形式表示。hex()函数语法:hex(x)在python中使用hex()函数将10进制转换为16...
    99+
    2024-04-02
  • Python二进制转化为十进制数学算法详解
    目录PythonPython二进制Python十进制Python二进制转化为十进制数学算法在python中可以通过内置函数int()函数进行二进制转十进制;int()函数可以将一个指...
    99+
    2023-01-06
    Python二进制转化为十进制 Python进制转化 Python二进制转化
  • php中怎么进行进制转换
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php进行进制转换1、bindec--二进制数转十进制数可以使用 bindec(二进制字符串) 函数,它可把二进制数转换为十进制数。<php echo binde...
    99+
    2019-03-05
    php 进制转换
  • php中如何进行进制转换
    这篇“php中如何进行进制转换”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中如何进行进制转换”文章吧。转换方法:1、...
    99+
    2023-06-29
  • PHP中如何进行数字转化
    PHP是一种面向对象、基于脚本的编程语言,被广泛应用于开发Web应用程序。在实际开发过程中,数字转化是一项经常用到的技术。本文将介绍PHP中如何进行数字转化。一、PHP中的基本数据类型在PHP中,数字是一种基本数据类型。数字有两种格式:整数...
    99+
    2023-05-14
    php
  • PHP中怎么进行数字转化
    这篇文章主要介绍“PHP中怎么进行数字转化”,在日常操作中,相信很多人在PHP中怎么进行数字转化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中怎么进行数字转化”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • 怎么通过shell进行数学运算
    这篇文章主要介绍“怎么通过shell进行数学运算”,在日常操作中,相信很多人在怎么通过shell进行数学运算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么通过shell进行数学运算”的疑惑有所帮助!接下来...
    99+
    2023-06-09
  • 通过dba_hist_*来进行诊断
    在Oracle10g中增加了dba_his_*类统计信息表,在瓶颈时间过时了的时候,可以参考这些表来诊断瓶颈来源。 1、确定时间段: select * from dba_hist_sna...
    99+
    2024-04-02
  • 使用Python内置的模块与函数进行不同进制的数的转换
    binascii 模块: 它包含一个把二进制数值转换成十六进制的函数,同样也可以反过来转。 #binary_value是二进制数值不是字符串,也不是int型的1010 binascii.b2a_he&#...
    99+
    2022-06-04
    函数 模块 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作