首页 > 数据库 >lightdb 支持 oracle raw bit_and 等

lightdb 支持 oracle raw bit_and 等

时间:2024-04-02 20:44:06浏览次数:23  
标签:xor RAW HEXTORAW raw 按位 oracle bit

背景

Oracle 的 Raw 类型可以进行位操作,在 lightdb 24.1 中,对其中的函数:bit_and, bit_or, bit_xor, bit_complement 四个函数进行了改进。

用例

bit_and

bit_and 函数对 raw 类型中的每一位进行 and 操作,即按位与。

--= 0A0B
SELECT UTL_RAW.BIT_AND(HEXTORAW('0A0B'), HEXTORAW('0F')) AS result FROM DUAL;

算法是:0A 与 0F 按位与,然后将 0B 直接拼接到结果中。

bit_or

bit_or 函数对 raw 类型中的每一位进行 or 操作,即按位或。

--= BBFDEF
SELECT UTL_RAW.BIT_OR(HEXTORAW('ABCDEF'), HEXTORAW('1234')) FROM dual;

算法是:ABCD 与 1234 按位或,然后将 EF 直接拼接到结果中。

bit_xor

bit_xor 函数对 raw 类型中的每一位进行 xor 操作,即按位异或。

--= B9F9EF
SELECT UTL_RAW.BIT_XOR(HEXTORAW('ABCDEF'), HEXTORAW('1234')) FROM dual;

算法是:ABCD 与 1234 按位异或,然后将 EF 直接拼接到结果中。

bit_complement

bit_complement 函数 raw 类型中的每一位进行按位求补操作。

--= 543210
select UTL_RAW.BIT_COMPLEMENT(HEXTORAW('ABCDEF')) from dual;

算法:
F - A = 5
F - B = 4
F - C = 3
F - D = 2
F - E = 1
F - F = 0

标签:xor,RAW,HEXTORAW,raw,按位,oracle,bit
From: https://www.cnblogs.com/lddcool/p/18111465

相关文章

  • C++bitset类型
    bitset类型我们介绍了将整型运算对象当作二进制位集合处理的一些内置运算符。标准库还定义了bitset类,使得位运算的使用更为容易,并且能够处理超过最长整型类型大小的位集合。bitset类定义在头文件bitset中。定义和初始化bitsetbitset类是一个类模板,它类似array类,具有固定的......
  • redis-BitMap(位图)使用方法
    一,BitMap介绍使用位存储,信息状态只有0和1Bitmap是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),在bitmap上可执行AND,OR,XOR,NOT以及其它位操作。二,应用场景签到统计、状态统计三,命令命令 描述setbitkeyoffsetvalue 为指定key的offset位设置值getb......
  • 执行计划】Oracle 11gR2使用Full outer Joins执行计划完成全外连接查询
    1.创建实验表并初始化实验数据sys@ora11g>select*fromv$version;BANNER------------------------------------------------------------------------OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-ProductionPL/SQLRelease11.2.0.1.0-ProductionCORE  ......
  • oracle组合索引什么情况下生效?
    Oracle组合索引(compositeindex)是指在数据库表的多个列上创建的索引。当查询操作中涉及到这些列并且是组合索引的前导列时,组合索引会生效。组合索引的前导列是指在索引中排在最前面的列。只有当查询的条件中使用了组合索引的前导列,且查询条件满足以下特性时,组合索引才会生效:......
  • 31.2k star, 免费开源的白板绘图工具 tldraw
    31.2kstar,免费开源的白板绘图工具tldraw分类 开源分享项目名:tldraw--无限画布白板Github开源地址: https://github.com/tldraw/tldraw在线测试地址: tldraw文档地址: tldrawSDKtldraw是一款开源免费的无限画布白板,可以在线的实时协作,用户能够创建简单的图形......
  • Oracle 解决like中无法匹配下划线的问题
    如果想检索出字段中包含下划线“_”的内容,该如何书写SQL语句呢?之所以问这个问题,是因为在Oracle中下划线在like中有着特殊的含义,它表示匹配任意一个字符。因此在查询包含下划线内容的时候需要“特殊关照”一下。既然被问到了这个问题,简单记录一下两种规避的方法,供参考。1.创建实验......
  • 【了解下Oracle】
    ......
  • ShadowToy-Smooth Mouse Drawing
    ShadowToy-SmoothMouseDrawing源码分析简概SmoothMouseDrawing源码分析学习。源码Image//Arecreationofhttps://lazybrush.dulnan.net///Controls://-Mousetodraw//-L:togglebetweenquadraticbeziercurvesandlinesegments//-S:toggleSDFv......
  • openGauss中的sequence跟Oracle的sequence有什么区别?
    openGauss中的sequence跟Oracle的sequence有什么区别?openGauss中也提供了sequence序列功能,使用Oracle的用户应该都非常喜欢使用这个功能。所以如果从Oracle迁移到openGauss,那么这项功能可以完全替代了。接下来我们简单测试一下:enmotech=>droptabletest;DROP......
  • 【Vue3】toRaw和markRow
    toRaw作用用于获取一个响应式对象的原始对象,toRaw返回的对象不再是响应式的,不会触发视图更新。toRaw()可以返回由reactive()、readonly()、shallowReactive()或者shallowReadonly()创建的代理对应的原始对象。注意:这是一个可以用于临时读取而不引起代理访问/跟踪开......