gpt4 book ai didi

oracle - PL/SQL 原始数据类型变量比较

转载 作者:行者123 更新时间:2023-12-05 00:35:40 26 4
gpt4 key购买 nike

是否可以比较原始数据类型的变量?
我正在使用 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 变量是否具有相同的值,请使用运算符。

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 原始数据类型变量比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9223943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com