2012-11-20 2 views
10

У меня проблема с файлом, который создается из данных (в формате байтов), возвращенных из базы данных.
проблема в том, что в файле есть несколько строк новой строки.
Мне хотелось бы узнать, есть ли способ написать предложение where, чтобы проверить, имеет ли какая-либо запись символ новой строки?Как найти новую строку в таблице оракула?

ответ

18

Использование функции CHR искать значения ASCII :

select * 
from your_table 
where instr(your_text_col, chr(10)) > 0; 

Если вы хотите найти возврат каретки, это будет chr (13).

4

Вы можете написать что-то вроде: (. || является конкатенация оператором; CHR(10) является десятым ASCII символов, т.е. символ новой строки)

SELECT id 
    FROM table_name 
WHERE field_name LIKE '%'||CHR(10)||'%' 
; 

+1

Благодарности. Я нашел другой способ: 'select * from label_master, где regexp_like (text, chr (10))' – meilechh

5

В зависимости от платформы, новая линия обычно будет либо 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 
Смежные вопросы