oracle – PL / SQL Raw数据类型变量比较
发布时间:2021-02-23 10:25:10 所属栏目:站长百科 来源:网络整理
导读:是否可以比较原始数据类型的变量? 我正在使用 XMLDOM.DomNodes,它是一个具有一个字段的记录: TYPE DOMNode IS RECORD (id RAW(12)); 所以我有两个节点,那么我可以通过它们的id字段来比较它们吗?我尝试了几个样品,乍一看似乎有效: FUNCTION findParentNod
是否可以比较原始数据类型的变量?
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变量是否具有相同的值,可以使用=运算符.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是一串字节而不是一串字符. (编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |