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)
但是,我得到零行和零错误.我究竟做错了什么?
这是一个RAW数据类型,你必须这样查询:
select .... where id=hextoraw('08364fc81419429d83c9bcedb24a9a57') ....
Run Code Online (Sandbox Code Playgroud)
我认为您可能需要HEXTORAW围绕您的ID价值使用该功能。此函数将十六进制字符串转换为相应的RAW值。
换句话说,您的查询应如下所示:
select * from Mike_Test WHERE ID=HEXTORAW('08364fc81419429d83c9bcedb24a9a57');
Run Code Online (Sandbox Code Playgroud)