各位大侠好啊,小弟问问一个奇怪的Oracle数据库问题,问题如下:
For example:
TableA里有一个字段FieldA,字段的属性是Varchar2(50),字段存了写Value,如:
AA
BB
CC
DD
操作:
1、用查询语句
Select FieldA From TableA Where FieldA='AA' 查不出数据
Select FieldA From TableA Where FieldA like 'AA%' 可以查出一行数据,且显示的值是AA
2、查长度
Select length(FieldA) From TableA where FieldA like 'AA%' 查出来长度是3
3、AA后加一个或多个字符
Update TableA Set FieldA || 'H' where FieldA like 'AA%' 执行成功
4、再查询长度
Select length(FieldA) From TableA where FieldA like 'AA%' 查出来长度是4(正确,因为加了一个H字符,试过加两个或者多个字符,字段长度也会相应的增加,这里没错)
5、问题就出在这里了
Select FieldA From TableA Where FieldA='AA' 依然查不出数据(应该说是肯定查不出的)
Select FieldA From TableA Where FieldA like 'AA%' 可以查出一行数据,且显示的值仍然是AA,AA后面不带任何字符(奇怪就是在这里了!)无论AA后来加了什么字符进去,查出来的都只显示AA。
试过直接从结果里复制AA的整一个字符串出来用=来查,还是查不出来,而且复制出来到文本编辑器里去粘贴也只是显示AA两个字符,后面所加的H或者多个其他字符都不见了!!!
请问有哪位可以帮帮忙帮我解决解决吗?
还有一个信息,数据是通过PB的程序添加进去的,用户添加的,所以现在不知道用户是怎么加进去的。。
For example:
TableA里有一个字段FieldA,字段的属性是Varchar2(50),字段存了写Value,如:
AA
BB
CC
DD
操作:
1、用查询语句
Select FieldA From TableA Where FieldA='AA' 查不出数据
Select FieldA From TableA Where FieldA like 'AA%' 可以查出一行数据,且显示的值是AA
2、查长度
Select length(FieldA) From TableA where FieldA like 'AA%' 查出来长度是3
3、AA后加一个或多个字符
Update TableA Set FieldA || 'H' where FieldA like 'AA%' 执行成功
4、再查询长度
Select length(FieldA) From TableA where FieldA like 'AA%' 查出来长度是4(正确,因为加了一个H字符,试过加两个或者多个字符,字段长度也会相应的增加,这里没错)
5、问题就出在这里了
Select FieldA From TableA Where FieldA='AA' 依然查不出数据(应该说是肯定查不出的)
Select FieldA From TableA Where FieldA like 'AA%' 可以查出一行数据,且显示的值仍然是AA,AA后面不带任何字符(奇怪就是在这里了!)无论AA后来加了什么字符进去,查出来的都只显示AA。
试过直接从结果里复制AA的整一个字符串出来用=来查,还是查不出来,而且复制出来到文本编辑器里去粘贴也只是显示AA两个字符,后面所加的H或者多个其他字符都不见了!!!
请问有哪位可以帮帮忙帮我解决解决吗?
还有一个信息,数据是通过PB的程序添加进去的,用户添加的,所以现在不知道用户是怎么加进去的。。
大家可以帮帮忙吗??谢谢了!!!
SQL> create table t(c1 varchar2(50));Table createdSQL> insert into t values('11');1 row insertedSQL> insert into t values('22'||chr(0));1 row insertedSQL> insert into t values('33'||chr(0)||'3');1 row insertedSQL> insert into t values('44'||chr(10)||'4');1 row insertedSQL> commit;Commit completeSQL> select * from t;C1
--------------------------------------------------
11
22
33
44
4
SQL> alter table t add c2 number;Table alteredSQL> update t set c2=lengthb(c1);4 rows updatedSQL> commit;Commit completeSQL> select * from t;C1 C2
-------------------------------------------------- ----------
11 2
22 3
33 4
44 4
4
SQL> update t set c1=translate(c1,'1'||chr(0),'1');4 rows updatedSQL> commit;Commit completeSQL> select c1,lengthb(c1),c2 from t;C1 LENGTHB(C1) C2
-------------------------------------------------- ----------- ----------
11 2 2
22 2 3
333 3 4
44 4 4
4
SQL>
输了后按Enter了,他提示密码错误??奇怪!!!