使用参数化执行SQL语句的时候,以Oracle为例.
未指定OracleParameter的DbType,执行查询语句时select * from table where time >:pTime ,该过程参数被直接赋值为时间字符串,即2013-03-11 18:36:56,并非Datetime类型,结果是该SQL依然正确执行,这是什么原因啊。(调试的时候查看该过程参数的类型,DbType=AnsiString,OracleType=Varchar)
这说明Oracle在编译Sql语句时自动把参数pTime解析成了datetime类型
初步猜测是这样的,但想更多的了解一下,关于这方面,会不会引起性能损失,或者这样写是否规范。
因为对dbType有一个强制的对象软化