У меня есть столбец типа RAW в моей базе данных. Как я могу использовать его в разделе where?
т.е. получить значения только с третьего байта, равным 4.
это не работает:oracle raw datatype in where clause
SELECT v from T where v[3]=4
У меня есть столбец типа RAW в моей базе данных. Как я могу использовать его в разделе where?
т.е. получить значения только с третьего байта, равным 4.
это не работает:oracle raw datatype in where clause
SELECT v from T where v[3]=4
использовать функции UTL_RAW пакета взаимодействовать с баранами, например:
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
Ссылка UTL_RAW выше дает 404. Следующая ссылка работает, хотя сегодня: https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_raw.htm#BABFGDDG – anjanb
@anjanb: thanks, I'm обновил ссылку –
Также можно использовать функцию REGEXP_LIKE для выбора строк с типом данных RAW:
select * from test where REGEXP_LIKE(a,'^....04.*')";
В моем случае использования этот метод немного быстрее, чем utl_raw.substr.
Retagged: - sql. – pakore