Oracle - Как получить строку после указанной длины и символа - PullRequest
0 голосов
/ 28 апреля 2020

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

Я пытался использовать REGEXP_SUBSTR (SELECT REGEXP_SUBSTR(col, '[^;]+', 1, 1)), но этот запрос возвращает только первую строку.

Изменение таблицы невозможно.

1 Ответ

1 голос
/ 28 апреля 2020

Вы можете попробовать:

SELECT
    REGEXP_REPLACE(SUBSTR(col, 1, 500), ';[^;]*$', '') AS col_out
FROM yourTable;

Лог c здесь для первого сокращения до 500 символов, используя SUBSTR. Затем мы удаляем любое возможное завершающее слово, удаляя последнюю точку с запятой и следующее (возможно, частичное) слово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...