У меня проблема с файлом, созданным из данных (в формате байтов), возвращенных из базы данных.
проблема в том, что в файле есть несколько новых строк.
Я хотел бы знать, есть ли способ написать предложение where, чтобы проверить, имеет ли какая-либо запись символ новой строки?
Как искать новую строку char в таблице оракула?
Ответ 1
Использование функции CHR для поиска значения ASCII:
select *
from your_table
where instr(your_text_col, chr(10)) > 0;
Если вы хотите найти возврат каретки, это будет chr (13).
Ответ 2
В зависимости от платформы новая строка обычно будет либо CHR(10)
(Unix), либо CHR(13)
, за которой следует CHR(10)
(Windows). Существуют и другие варианты других эзотерических платформ, но 99.999% времени, это будет один из этих двух.
Вы можете искать данные в столбце в поисках одного или обоих символов
SELECT instr( column_name, CHR(10) ) position_of_first_lf,
instr( column_name, CHR(13) || CHR(10) ) position_of_first_cr_lf
FROM table_name
WHERE instr( column_name, CHR(10) ) > 0
Ответ 3
Вы можете написать что-то вроде:
SELECT id
FROM table_name
WHERE field_name LIKE '%'||CHR(10)||'%'
;
(||
- оператор конкатенации, CHR(10)
- десятый символ ASCII, т.е. строка новой строки.)