今天要做一个查询,很简单的一个查询,数据库是oracle 8.17,以前也做过一些sql server 或者oracle 的查询,感觉和sql server 区别不是很大,很快查询语句就写好了:
string StrSelect = "select T$ITEM,T$CLOT,T$CPFT,T$VALU from ttdltc012111 where T$CLOT='" +TxtCsno.Text.ToString().Trim()+ "'";
语句语法检查能够过去,但是就是查不出来数据,把数据导出来,明明就有.
后来查看数据库设计,CLOT字段是varchar(16)数据类型,我的输入就只有8个字符,考虑估计又是存储数据中含有空格
查了一下oracle 中的字符函数,换了以下查询,用replace 替换空格就可以了
string StrSelect = "select T$ITEM,T$CLOT,T$CPFT,T$VALU from ttdltc012111 where replace(T$CLOT,' ','')='" +TxtCsno.Text.ToString().Trim()+ "'";
OK查询执行成功,查出数据.
后来考虑能够替换空格,估计也能补齐空格,继续测试:用LPAD函数在左边补齐空格到16位
select * from ttdltc012221 where T$CLOT=LPAD('+TxtCsno.Text.ToString().Trim()+ ',16)
测试,正常执行!