我在PLSQL客户端中打了这样的一句话
select * from table;
然后table中有个字段名字叫car_no,是varchar(15)类型,我随便从刚才的查询结果中复制一个car_no的值name,然后继续查询如下:
select * from table where car_no='name';
结果却查不到任何记录,为何?然后我又做了另外一个查询:
select car_no,length(name) from table;
显示出来name的length是15,为何?还有就是这条记录我是在程序中用JDBC插入的,如果我用PLSQL直接插入的话是没有上面描述的情况的!是什么原因造成的?字符编码?请高人指点!
select * from table;
然后table中有个字段名字叫car_no,是varchar(15)类型,我随便从刚才的查询结果中复制一个car_no的值name,然后继续查询如下:
select * from table where car_no='name';
结果却查不到任何记录,为何?然后我又做了另外一个查询:
select car_no,length(name) from table;
显示出来name的length是15,为何?还有就是这条记录我是在程序中用JDBC插入的,如果我用PLSQL直接插入的话是没有上面描述的情况的!是什么原因造成的?字符编码?请高人指点!
select * from table where trim(car_no)='name';
但是也查不出任何记录!
要不你这样试试
select * from table where trim(trim(trim(car_no),chr(10)),chr(13))='name';
看看不是有回车之类的
trim能这样用?我试了一下,编译不通过,不能执行,是不是这个意思:
select * from table where trim(trim(chr(13) from trim (chr(10) from car_no)))='name';
我试了一下这个,也不行!
SELECT rawtohex(car_no),car_no FROM table ;把查询的记录,比如包含car_no=name的贴出来看看。
估计就是因为回车换行导致的。
select * from table where car_no like '%name%';应该可以查出来。
select * from table where "car_no" = 'name'
SELECT rawtohex(car_no),car_no FROM table ;的结果
1 42BBA6412D59343836330000000000 B沪A-Y4863
2 42BBA6412D59343530300000000000 B沪A-Y4500
3 42BBA6412D4A323637390000000000 B沪A-J2679
4 42BBA6412D59323833310000000000 B沪A-Y2831
5 42BBA6412D59303934370000000000 B沪A-Y0947
6 42BBA6412D59353038340000000000 B沪A-Y5084
7 42BBA6412D59343630320000000000 B沪A-Y4602
8 42BBA6412D59343535390000000000 B沪A-Y4559
9 42BBA6422D59383932330000000000 B沪B-Y8923
10 42BBA6412D59363231390000000000 B沪A-Y6219
11 42BBA6412D59343836300000000000 B沪A-Y4860
12 42BBA6412D59343532370000000000 B沪A-Y4527
13 42BBA6412D59353730350000000000 B沪A-Y5705
14 42BBA6412D59363439310000000000 B沪A-Y6491
15 42BBA6412D59343537370000000000 B沪A-Y4577
16 42BBA6412D59343537370000000000 B沪A-Y4577
17 42BBA6412D59343532370000000000 B沪A-Y4527
18 42BBA6412D59343630320000000000 B沪A-Y4602
19 42BBA6412D59343532370000000000 B沪A-Y4527
20 73746F706E616D6500000000000000 stopname
21 73746F706E616D6532000000000000 stopname2
22 6E616D650000000000000000000000 name
23 6E616D650000000000000000000000 name
24 42BBA6412D4A323637390000000000 B沪A-J2679
25 42BBA6412D59323833310000000000 B沪A-Y2831
26 42BBA6412D4A323637390000000000 B沪A-J2679
update table set car_no=rTRIM(NAME,chr(0)) where length(rTRIM(car_no,chr(0)))<length(car_no);可能是你们的程序导入或者输入的时候导致的这个问题。
update table set car_no=rTRIM(car_no,chr(0)) where length(rTRIM(car_no,chr(0))) <length(car_no); 可能是你们的程序导入或者输入的时候导致的这个问题。