Как прочитать строку из правильного PLSQL

В столбце таблицы у меня есть это значение:

DV-2011-01-000004 (тип данных varchar2)

Как я могу получить часть строки «000004»? В t-sql у них есть эта функция right(), но в PL SQL я не могу найти функцию, аналогичную right() в t-sql.

Спасибо за помощь.


person FMiS Help Desk    schedule 27.02.2012    source источник
comment
Чтобы этот вопрос мог помочь будущим разработчикам: пожалуйста, отредактируйте свой вопрос, чтобы точно указать ваше требование - вы хотите получить строку символов после последнего "-" или вы хотите просто получить самые правые 6 символов?   -  person Jeffrey Kemp    schedule 28.02.2012


Ответы (2)


вы можете использовать:

 SUBSTR('DV-2011-01-000004', INSTR('DV-2011-01-000004', '-', -1) +1)

при использовании INSTR с отрицательной начальной позицией он найдет последний индекс "-". затем SUBSTR будет обрезать это вхождение до конца (потому что я не указал длину)

person Dor Cohen    schedule 27.02.2012
comment
в pl/sql двойные кавычки используются для идентификаторов, а не для строки - person turbanoff; 27.02.2012

person    schedule
comment
Ок пусть сам решает, я вообще за общие решения а не за конкретные. - person Dor Cohen; 27.02.2012
comment
Мы не можем точно знать, какое решение им нужно. Может быть, мое решение является общим - person turbanoff; 27.02.2012
comment
Поскольку OP не указал, как распознать последнюю часть строки (фиксированной длины или символа), этот ответ является таким же общим, как и другой. - person Rene; 27.02.2012