oracle字段截取问题

字段由“编号.名称”组成,如:“25000023.北京***分公司”

原先编号定死为8位,前两位用以区分省份,可以用这个语句判断是否为省份总公司
substr(t.name,3,6)='000000') --t.name为字段

现在编号更改为不限位数,但前两位还是保留作用同上,
试了下这个方法:
to_number( substr(t.name,3,Instr(t.name, '.', 1, 1) - 1))=0)

--就是从第3位起一直到小数点位置为止,如果整个结果为0,就说明是省份总公司
但测试时出现“无效数据”错误,或许方法不对,不知道有更好的实现方法吗?谢谢 :)
[b]问题补充:[/b]
不是,是第三位到小数点的位置,现在小数点的位置是可变的
[b]问题补充:[/b]
其实项目需求就是要把这两个放在一起的! :oops:

那没关系啊。如果可以拆开,那找到后两个字符串很容易在把他们组在一起啊,最简单就是拼接在一起,若果担心效率,可以使用StringBuffer啊,你做的什么项目啊?是在北京吗?我也是在这做呢

你不就是想要截取从第三个位置到最后的位置吗?是吧? 没必要这样做啊,函数substr("t.name",3)不就可以了吗?

其实你完全可以换一种思维,可以先将t.name例如你的字符串25000023.北京***分公司,可以先通过字符串的函数将其分为两个部分,用‘.’分,一部分是25000023,另一部分是北京***分公司,这样你看行不行

原有表结构不合理,加字段解决