我的数据库中有一列RAW类型。我怎样才能在where子句中使用它?
即只获得第三个字节等于4的值
这不起作用:
SELECT v from T where v[3]=4
答案 0 :(得分:11)
使用UTL_RAW包的功能与raws进行交互,例如:
SQL> create table test (a raw(16));
Table created
SQL> insert into test values ('FF00FF00FF');
1 row inserted
SQL> select * from test where utl_raw.substr(a, 3, 1) = 'FF';
A
--------------------------------
FF00FF00FF
答案 1 :(得分:0)
还可以使用REGEXP_LIKE函数选择具有RAW数据类型的行:
select * from test where REGEXP_LIKE(a,'^....04.*')";
在我的用例中,此方法比utl_raw.substr快一点。
答案 2 :(得分:0)
在 Oracle 中: 您可以使用HEXTORAW函数
它以另一种方式在其他数据库中。例如在 DB2 中: