oracle – PLSQL Raw数据类型变量比较

oracle – PLSQL Raw数据类型变量比较,第1张

概述是否可以比较原始数据类型变量? 我正在使用 XMLDOM.DomNodes,它是一个具有一个字段的记录: TYPE DOMNode IS RECORD (id RAW(12)); 所以我有两个节点,那么我可以通过它们的id字段来比较它们吗?我尝试了几个样品,乍一看似乎有效: FUNCTION findParentNode(p_node IN xmldom.domnode) RETURN PLS_ 是否可以比较原始数据类型的变量?
我正在使用 XMLDOM.DomNodes,它是一个具有一个字段的记录:

TYPE DOMNode IS RECORD (ID RAW(12));

所以我有两个节点,那么我可以通过它们的ID字段来比较它们吗?我尝试了几个样品,乍一看似乎有效:

FUNCTION findparentNode(p_node IN xmldom.domnode) RETURN PLS_INTEGER  AS      nRetVal               PLS_INTEGER;  BEGIN     FOR i IN parentNodes.First .. parentNodes.Last     LOOP          IF parentNodes(i).ID = p_node.ID THEN                           nRetVal := i;            EXIT;         END IF;              END LOOP;     RETURN nRetVal;  END;

但Oracle文档中的一件事让我担心:
Raw data is like VARCHAR2 data,except that PL/SQL does not interpret raw data
这是什么意思?如果pl / sql不解释raw,那么它可以比较吗?

解决方法 如果要查看两个RAW变量是否具有相同的值,可以使用=运算符.

sql> DECLARE  2     a RAW(255) := utl_raw.cast_to_raw('abcdef');  3     b RAW(50) := utl_raw.cast_to_raw('abcdef');  4  BEGIN  5     IF a = b THEN  6        dbms_output.put_line('a = b');  7     ELSE  8        dbms_output.put_line('a != b');  9     END IF; 10  END; 11  /a = b

当文档声明RAW类似于VARCHAR2但未解释时,这意味着您可以像对待VARCHAR2一样影响,存储甚至比较RAW变量,但二进制值永远不会与字符集匹配.

另一方面,VARCHAR2变量可以转换,因为数据库的字符集和客户端之间不匹配.

RAW是一串字节而不是一串字符.

总结

以上是内存溢出为你收集整理的oracle – PL / SQL Raw数据类型变量比较全部内容,希望文章能够帮你解决oracle – PL / SQL Raw数据类型变量比较所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1165213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存