无法通过UUID RAW查找数据库中的行(32)

Mik*_*sen 5 sql database oracle oracle11g

我有下表:

create table Mike_Test
( Id          raw(32)      default sys_guid() not null primary key,
  Value        varchar2(80) not null unique
);
Run Code Online (Sandbox Code Playgroud)

我现在插入此表:

INSERT INTO Mike_Test (VALUE) VALUES ('Blah');
Run Code Online (Sandbox Code Playgroud)

我可以确认那里有一个新行:

select * from Mike_Test;
Run Code Online (Sandbox Code Playgroud)

我明白了:

08364fc81419429d83c9bcedb24a9a57    Blah
Run Code Online (Sandbox Code Playgroud)

现在我尝试用以下方法选择该行:

select * from Mike_Test WHERE ID='08364fc81419429d83c9bcedb24a9a57';
Run Code Online (Sandbox Code Playgroud)

但是,我得到零行和零错误.我究竟做错了什么?

Mar*_*rio 9

这是一个RAW数据类型,你必须这样查询:

select .... where id=hextoraw('08364fc81419429d83c9bcedb24a9a57') ....
Run Code Online (Sandbox Code Playgroud)


Luk*_*ard 5

我认为您可能需要HEXTORAW围绕您的ID价值使用该功能。此函数将十六进制字符串转换为相应的RAW值。

换句话说,您的查询应如下所示:

select * from Mike_Test WHERE ID=HEXTORAW('08364fc81419429d83c9bcedb24a9a57');
Run Code Online (Sandbox Code Playgroud)