这种迁移似乎非常具有挑战性。我现在要做的是对 oracle db 表执行简单的查询:
OBJECTID NOT NULL NUMBER,
DOUBLEVALUE NOT NULL FLOAT(126),
MODTIME DATE
当我使用 System.Data.OracleClient 时,我可以插入参数化查询,其中参数值为:
123,
"123.123",
DateTime.Now.ToString().
和 DbParameter.DbTypes 是:
DbType.Int32,
DbType.Double,
DbType.Date
如果我使用 Oracle.DataAccess.Client 这不起作用:
对于 DOUBLEVALUE,我得到了异常,因为在我的系统 Convert.ToDouble(由 OracleParameter.PreBind_Double 调用)中,我期望我使用逗号(“123,123”)。我不想更改所有程序和文件中的所有值。OleDb 也可以毫无问题地处理这个问题。
对于 MODTIME,我得到“ORA-01830:日期格式图片在转换整个输入字符串之前结束。” 如果我将值更改为 DateTime.Now.ToShortDateString(),这将有效。如果我更改参数类型也可能。这个 OleDb 也可以处理。
Oracle.DataAccess.Client 无法处理 System.Data.OracleClient 和 System.Data.OleDb 没有问题的这些非常基本的情况似乎很荒谬。有什么建议吗?
谢谢和最好的问候-马蒂