2012-02-27 49 views
5

读字符串表列,我有这样的价值:如何从正确的PLSQL

DV-2011-01-000004(数据类型是VARCHAR2)

我怎样才能获得的部分字符串'000004'?在t-sql中他们有这个right()函数,但是在PL SQL中,我无法像在t-sql中的right()那样找到一个函数。

感谢您的帮助。

+2

为了这个问题可能有助于未来开发者:请编辑你的问题说出你的要求是什么 - 你想要在最后一个' - '之后得到字符串,还是只想得到最右边的6个字符? – 2012-02-28 06:54:49

回答

8
substr('DV-2011-01-000004', length('DV-2011-01-000004')-6 + 1) 
+0

我认为他想要的是用于一般用途,不仅用于现在.. – 2012-02-27 07:22:26

+0

t-sql中的right()与substr(length - neededchar)相同 – turbanoff 2012-02-27 07:24:30

+0

Ok他决定,我通常是一般的解决方案,而不是特定的解决方案。 – 2012-02-27 07:26:08

2

你可以使用:

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

使用INSTR负起始位置时,他会发现的最后一个索引“ - ”。 然后SUBSTR将从此发生切,直到结束(因为我没有提供长度)

+0

在用于标识符的pl/sql双引号中,不用于字符串 – turbanoff 2012-02-27 07:30:28