你說的不可能,
在Oracle中如果是Char型是絕對不會自動去掉兩邊的空格的。把你Oracle PL/SQL的語句貼出來,懷疑有調用自己寫的函數去掉了空格。
在Oracle中如果是Char型是絕對不會自動去掉兩邊的空格的。把你Oracle PL/SQL的語句貼出來,懷疑有調用自己寫的函數去掉了空格。
解决方案 »
- 救命啊!!!!!!大家帮我看看啊!!!!!在线等!!!
- 百般无奈下求助“ORA-12514: TNS:listener could not resolve SERVICE_NAME”
- 关于存储过程分页问题
- 关于百分数的小数位问题
- oracle动态视图
- 一个表中的两个字段的值两两相同时,只留第一条,请问SQL语句如何
- 高分求教:日期转星期的问题
- oracle8.0.5jdbc连接问题
- 因为是数据库的移值,导致表中double中的值有的为null,怎么一次性更新表中double类型的null值为0.0??
- PLSQL Developer创建新的Table时报错,“无效的表分区方法",请问是什么原因啊
- 数据库启动中的问题。
- 如何将数据库从一个oracle倒入另外一个oracle
select * from test where xxx='1'
结果就能查出来,是不是这种软件会自动去掉空格再比较啊。
Connection con = null;
java.sql.PreparedStatement pstmt = null;
java.sql.ResultSet rs = null;
con = com.mst.db.defaults.login();
con.setAutoCommit(true);
以下语句执行正常:
Sql="select * from xt_yhxx where dlm='admin'" ;
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
但换成以下写法后返回结果为空,没有任何异常抛出:
Sql="select * from xt_yhxx where dlm=?" ;
pstmt = con.prepareStatement(sql);
pstmt.setString(1, "admin");
rs = pstmt.executeQuery();用的是Oracle 10g,Jdbc驱动就是Oracle客户端带的Class12.jar.非常困惑,望指点!进一步测试发现:由于dlm是char(20),若把变量的值用空格补足20位,查询结果就正确了。对于其他类型的字段如Varchar2等没有这个问题。若是这样,我每传一个参数,都要判断字段是否为Char类型,若是就要用空格补足Char的长度,这是是否太麻烦了,不太可行?都换成Varchar2又有效率问题,也不行。
只能构造完成Sql,不用pstmt.set...?如何解决这个问题?等!等!