从右侧获取子字符串

Fetch substring from right side

我正在使用甲骨文。我有一列“ITEM_FINAL”,由一个字符串组成,该字符串是 2 条记录的组合。

ITEM_FINAL = ITEM_ID + ITEM

我需要将 ITEM_FINAL 分开并将它们放入 2 个不同的列 ITEM_ID 和 ITEM。 然而 ITEM_ID 的长度不是常量,它可以是 1 或 10 或 999(直到 3 位数)。 ITEM是常量,永远是5位。

例如。 ITEM_FINAL = 1256789(12 + 56789 的组合)或 256789(2 + 56789 的组合)

我可以在 substr 的帮助下获取 ITEM 详细信息

select substr(ITEM_FINAL,-5) from dual;

它将给出最后 5 位数字 (56789),这是不变的。对于 ITEM_ID 列

,我如何从第 6 个位置获取剩余的字符串直到开始而不考虑从右侧开始的长度
select substr(ITEM_FINAL, 1, length(ITEM_FINAL)-5) ITEM_ID, 
       substr(ITEM_FINAL,-5) ITEM 
 from dual;