0

我正在使用 Oracle Db 并调用一个简单的选择查询,但 Oracle 抛出了一个奇怪的错误消息:

System.Data.dll 中发生“System.Data.OleDb.OleDbException”类型的第一次机会异常未指定错误发生 Oracle 错误,但无法从 Oracle 检索错误消息。不支持数据类型。

这是 CDB 类

这就是我打电话的方式:

        CDb conn = new CDb();
        conn.getConnection();
        System.Data.OleDb.OleDbDataReader reader = null;
        String query = "Select * FROM Table";
        reader = conn.find(query);
        while (reader.Read())
        {
            Console.WriteLine("Going...");
        }

在打印上述错误消息后调试它会引发异常。我做错了什么?

数据库架构:

SB_ID                                     NOT NULL NUMBER(11)
SB_TITLE                                           VARCHAR2(200)
SB_ONDATE                                          TIMESTAMP(0)
SB_RCVDDATE_QAMRI                                  VARCHAR2(10)
SB_RCVDDATE_SHAMSI                                 DATE
SB_MODE                                            NUMBER(1)
SB_PREFERENCE                                      NUMBER(1)
SB_STATUS                                          NUMBER(1)
SB_RASEED_ISSUED                                   NUMBER(1)
SB_MUJIB_ID                                        NUMBER(11)
SB_RECVD_BY_ID                                     NUMBER(11)
SB_MUSTAFTI_FULLNAME                               VARCHAR2(100)
SB_MUSTAFTI_ADDRESS                                VARCHAR2(100)
SB_MUSTAFTI_COUNTRY                                NUMBER(3)
SB_MUSTAFTI_CITY                                   VARCHAR2(100)
SB_MUSTAFTI_STATE                                  VARCHAR2(100)
SB_MUSTAFTI_MOBILE                                 VARCHAR2(20)
SB_MUSTAFTI_PHONE                                  VARCHAR2(20)
SB_MUSTAFTI_FAX                                    VARCHAR2(20)
SB_MUSTAFTI_EMAIL                                  VARCHAR2(40)
SB_MUSTAFTI_NIC                                    VARCHAR2(20)
SB_DISTRIBUTION_DATE                               DATE
SB_ISSUEDATE_QAMRI                                 VARCHAR2(10)
SB_ISSUEDATE_SHAMSI                                DATE
4

1 回答 1

1

发布的架构中唯一潜在的麻烦数据类型是 TIMESTAMP,但根据 OLE DB 10g 支持的文档。 了解更多

因此,要么您没有使用现代版本的 OLE DB,要么您的表存在更模糊的问题。一种令人厌烦但万无一失的调试方法是在查询中指定一些列名并找出它不喜欢的列名。

于 2013-05-06T07:49:52.630 回答