DBProvider 连接 Oracle 10g 数据库的问题
在應用.Net 2.0 連接Oracle的時候遇到了問題:
1.1時代都是直接Using System.Data.OracleClient,.Net 2.0改進成使用DBProvider(System.Data.Common)的方式,
看起來很美,但是用到Oracle存儲過程返回結果集的時候愣住了
DBType沒有支持Cursor的類型?!查了資料半天也沒有結果
如果實在沒辦法只好回到System.Data.OracleClient了
.NET Framework Data Provider for Oracle
| BFILE | Byte[] | GetBytes() | GetOracleBFile() |
| BLOB | Byte[] | GetBytes() | GetOracleLob() |
| CHAR | String Char[] | GetString() GetChars() | GetOracleString() |
| CLOB | String Char[] | GetString() GetChars() | GetOracleLob() |
| DATE | DateTime | GetDateTime() | GetOracleDateTime() |
| FLOAT | Decimal | GetDecimal() | GetOracleNumber() ** |
| INTEGER | Decimal | GetDecimal() | GetOracleNumber() ** |
| INTERVAL YEAR TO MONTH * | Int32 | GetInt32() | GetOracleMonthSpan() |
| INTERVAL DAY TO SECOND * | TimeSpan | GetTimeSpan() | GetOracleTimeSpan() |
| LONG | String Char[] | GetString() GetChars() | GetOracleString() |
| LONG RAW | Byte[] | GetBytes() | GetOracleBinary() |
| NCHAR | String Char[] | GetString() GetChars() | GetOracleString() |
| NCLOB | String Char[] | GetString() GetChars() | GetOracleLob() |
| NUMBER | Decimal | GetDecimal() | GetOracleNumber() ** |
| NVARCHAR2 | String Char[] | GetString() GetChars() | GetOracleString() |
| RAW | Byte[] | GetBytes() | GetOracleBinary() |
| REF CURSOR | ? | ? | ? |
| ROWID | String Char[] | GetString() GetChars() | GetOracleString() |
| TIMESTAMP * | DateTime | GetDateTime() | GetOracleDateTime() |
| TIMESTAMP WITH LOCAL TIME ZONE * | DateTime | GetDateTime() | GetOracleDateTime() |
| TIMESTAMP WITH TIME ZONE * | DateTime | GetDateTime() | GetOracleDateTime() |
| UNSIGNED INTEGER | Decimal | GetDecimal() | GetOracleNumber() ** |
| VARCHAR2 | String Char[] | GetString() GetChars() | GetOracleString() |
問題最終用一下的方式解決:
??????????? DbParameter param = dpfProvider.CreateParameter();
??????????? if (sourceColumn == ORACLE_REF_CURSOR)
??????????? {
??????????????? OracleParameter op = new OracleParameter();
??????????????? op.OracleType = OracleType.Cursor;
??????????????? param = op;
??????????? }
雖然看起來有點不倫不類,但是能運行,而且支持多個Oracle Ref Cursor
轉載于:https://www.cnblogs.com/yuxu/archive/2005/12/19/300476.html
總結
以上是生活随笔為你收集整理的DBProvider 连接 Oracle 10g 数据库的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [导入]防止你的日志页被人iframe
- 下一篇: 关于:以前的某个程序安装已在安装计算机上