我公司有个rac的测试环境,然后我笔记本上有个学习的单机oracle库,他们两个都是11.2.0.2版本的
有个测试表ipmap(symtid char(10) primary key,port int );(表结构在两个库一摸一样)
SQL> select * from ipmap;
SYMTID PORT
---------- ----------
w1 38
w2 38
w3 38
w4 38
问题如下:
我在学习库上运行如下sql成功
SQL> select * from ipmap where substr(symtid,2)=1;
SYMTID PORT
---------- ----------
w1 38
接着我用同样的sql语句在rac的测试库上运行却失败
SQL> select * from ipmap where substr(symtid,2)=1;
ERROR:
ORA-01722: invalid number
no rows selected
由于数据类型不匹配(虽然我在学习库上能够执行成功),于是接着运行如下sql
SQL> select * from ipmap where to_number(substr(symtid,2))=1;
ERROR:
ORA-01722: invalid number
no rows selected
因为公司要对ipmap表进行批量更新的测试,而主键列为字符型,所以我想到了用substr截取字符剩下的就是有规律的数字了,那样就可以结合for循环中的批量来进行批量更新了。可上面的问题我却不知道如何是好 特请教各位
|
|