Определите столбец, в который были введены данные, в несколько строк - PullRequest
0 голосов
/ 01 марта 2019

Oracle Database 11g Enterprise 11.2.0.4.0, PL / SQL Release 11.2.0.4.0

У меня есть таблица, которая содержит адресный столбец (NVARCHAR2 (50)).Предполагается, что этот столбец будет только строкой адреса 1.

Есть несколько небольших записей, в которых адрес был неправильно введен в столбец, это должна быть первая строка адреса, но она видна черезприложение, которое пользователь может ввести в первую строку адреса несколько раз, или даже полный адрес в первой строке этого столбца адреса.

Screenshot1

Расширение записи1 (Двойной щелчок поколонка в жабе) покажет это.Обратите внимание на дополнительные строки.

screenshot 2

Мне нужно написать SQL, который будет определять столбцы, содержащие первую строку адреса, введенного в этом неправильном формате (например, несколько строк или табуляция и т. Д.) Я нашел это в другом сообщении об обмене стека, но это не помогает в моей ситуации с несколькими строками.

select * from tablename где regexp_like (columnname, chr (9));

я написалэтот SQL для воспроизведения, и, кажется, демо мой сценарий.

CREATE TABLE XRAY_TEST (ADD_LI1 NVARCHAR2(50));

INSERT INTO XRAY_TEST (ADD_LI1)
VALUES ('25 CAMBRIDGE STREET
25 CAMBRIDGE STREET
25 CA');
COMMIT;

INSERT INTO XRAY_TEST (ADD_LI1)
VALUES ('25 WESTWIND CRESCENT');
COMMIT;

SELECT *
FROM XRAY_TEST

Итак, чтобы подвести итог, я хочу иметь возможность идентифицировать любую запись в таблице, которая была введена как запись1 (например, многострочная).

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Похоже, вы ищете значения, содержащие перевод строки, поэтому:

where somecol like '%'||chr(10)||'%'

Или, альтернативно,

where instr(somecol, chr(10)) > 0

Регулярное выражение здесь будет избыточным.

0 голосов
/ 01 марта 2019

попробуйте найти совпадение с регулярным выражением для новой строки, этот запрос должен приводить только к тем записям, адрес которых у вас разбит на более чем 1 строку

SELECT * 
FROM XRAY_TEST 
where ADD_LI1 regexp '(\n)';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...