在PostgreSQL我们可以直接通过下面的方式来将十六进制转换成十进制:

bill@bill=>select x'ab'::int;int4
------171
(1 row)

但是这仅仅只能针对某个固定的字符串,如果是下面这种情况就没办法直接转换了:

bill@bill=>select x(substring('abcd',1,2))::int;
ERROR:  function x(text) does not exist
LINE 1: select x(substring('abcd',1,2))::int;^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

这种情况我们可以通过UDF函数来实现:

CREATE OR REPLACE FUNCTION hex_to_int(hexval varchar) RETURNS bigint AS $$
DECLAREresult  bigint;
BEGINEXECUTE 'SELECT x' || quote_literal(hexval) || '::bigint' INTO result;RETURN result;
END;
$$ LANGUAGE plpgsql IMMUTABLE STRICT;

使用该UDF便可以将字符串函数作为参数了:

bill@bill=>select hex_to_int(substring('abcd',1,2));hex_to_int
------------171
(1 row)

参考链接:
https://stackoverflow.com/questions/8316164/convert-hex-in-text-representation-to-decimal-number

PostgreSQL自定义函数实现十六进制转十进制相关推荐

  1. PostgreSQL自定义函数

    PostgreSQL自定义函数 函数语法 实例 动态执行语句 话不多说,下面直接拿实例说话. 函数语法 CREATE [OR REPLACE] FUNCTION function_name (argu ...

  2. postgresql自定义函数实现,通过contrib模块进行扩展

    概要 PostgreSQL从设计上是可扩展的,从用户的角度可以通过四种方式对PostgresSQL进行扩展 query language functions (functions written in ...

  3. [postgresql]postgresql自定义函数查询ETL作业依赖的实例

    --------------------------------------------------- ---需求:查找ETL依赖关系 ---描述:根据作业ID,查找上游依赖的作业ID ---依赖表结 ...

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

    一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); / ...

  5. linux c十六进制转十进制函数,用Linux/Unix命令把十六进制转换成十进制(转)

    那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能 ...

  6. postgreSql按位运算、二进制十进制十六进制的表法和转换

    -- postgre 按位运算符 以及结果 注释的后面为结果SELECT 1|2 ; -- 3SELECT 1&2 ; -- 0SELECT 1*2 ; -- 2SELECT 4>> ...

  7. postgresql中自定义函数脚本的备份及恢复

    [转自 housonglin1213 的博客]http://blog.csdn.net/housonglin1213/article/details/51005540 1.自定义函数脚本备份 CREA ...

  8. oracle十进制函数语法,Oracle 十进制、二进制互相转换自定义函数

    Oracle 十进制.二进制相互转换自定义函数 create or replace function number_2_bit(v_num number) return varchar is v_rt ...

  9. mysql存储过程和自定义函数

    2019独角兽企业重金招聘Python工程师标准>>> 存储过程简介 SQL语句需要先编辑后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储过程在数据库中,用户通过 ...

最新文章

  1. 构造 ---- D. AB Graph(偶数和3远环的关系)
  2. dubbo部分常见的面试题目
  3. 字段定义_两大高招逐浪CMS中定义省地市县三级字段显示方式
  4. 设计模式-装饰模式(Decorator Pattern)
  5. MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)
  6. 排序算法——希尔排序(缩小增量排序)
  7. 一个普通二叉树的遍历
  8. gittrack_Git 分支跟踪详解(remote branch tracking)
  9. Java类加载原理解析(转)
  10. ucore 地址映射的几个阶段
  11. 道路照明智能监控用5G智慧灯杆网关
  12. 制造企业发展遇瓶颈?低代码平台助其逆风翻盘!
  13. 个人wiki搭建资料整理
  14. 【数仓】数据仓库高频面试题题英文版(1)
  15. 计算机主板所采用的cpu接口,主板中的CPU_FAN、SYS_FAN、CPU_OPT、AIO_PUMP是什么接口...
  16. excel中#N/A的解释同比环比基比画四象限图的小tips字符串截取函数substitute的深入理解
  17. Miui13-mi10s刷twrp和Magisk
  18. jsp 按照学号查找学生_怎样做才可以用JSP实现只输入姓名或学号就可以进行查询...
  19. Laravel 的生命周期
  20. 李宏毅深度学习视频摘要

热门文章

  1. 单片机死机了,该怎么办?
  2. 数据库集群技术分析和比较(一)
  3. pdcch加扰_LTE中的PDCCH
  4. 欢乐牧场养殖游戏软件开发
  5. 汇编语言中DAA的英文全称和解释
  6. C8051F500 BootLoader
  7. 图注意力网络的代码下载和分析
  8. JQuery实现自定义滚动条
  9. MySQL不使用逗号_MYSQL在group by语句中使用AND而不是逗号
  10. 人生若只如初见-安意如