Oracle 19c使用BITOR函数报ORA-00904,求无自定义函数的更新方案
解决Oracle 19c中BITOR函数报错的替代方案
Oracle 19c并未内置BITOR函数,你可以通过内置的BITAND函数结合算术运算实现按位或效果,无需创建自定义函数。按位或的等价运算公式为:a | b = a + b - BITAND(a, b)
将你的更新语句修改为以下形式即可:
UPDATE Table1 SET "user" = "user" + 4194304 - BITAND("user", 4194304);
补充说明:
user是Oracle的保留字,如果你的字段名确实为user,必须用双引号包裹,否则会触发额外语法错误。- 公式原理:两个数相加会包含各自的置位,但会重复计算两者共同置位的部分,减去两者的按位与(即共同置位的数值),最终结果与按位或完全一致。
内容的提问来源于stack exchange,提问作者satcha
相关产品推荐
相关产品推荐

