技术开发 频道

访问Oracle数据库100条记录后出现乱码

【IT168 技术文档】

        笔者在访问Oracle数据库时,打开一个记录集后,顺序获取该记录集的记录,结果总是前100条记录正常,无乱码,而从第101条记录开始出现乱码,数据库采用的是UTF-8编码。NLS_LANG是SIMPLIFIED CHINESE_CHINA.UTF8。

select * from t_infotype t where t.domain='ORGCODE' (无乱码)

select t.id,t.code,t.info_name from t_infotype where t.domain='ORGCODE' (一百条记录后是乱码)

'Private Sub ExeSql(ByVal Sql As String)
' Try
' If Nothing Is _Conn Then
' Dim asr As New System.Configuration.AppSettingsReader
' _Conn = New OracleConnection(DirectCast(asr.GetValue("ConnectionString", GetType(System.String)), String))
' _Conn.Open()
' Else
' If _Conn.State <> ConnectionState.Open Then
' _Conn.Open()
' End If
' End If
' _ada = Nothing
' _ada = New OracleDataAdapter(Sql, _Conn)
' _dt = New DataTable
' _ada.Fill(_dt)
' Me.DataGrid1.DataSource = _dt.DefaultView()
' _Conn.Close()
' Catch ex As Exception
' 'System.Diagnostics.Debug.WriteLine(ex.ToString)
' MessageBox.Show(ex.ToString)
' End Try

'End Sub

    最后发现,只要更改了注册表中Oracle的OLEDB参数设置即可解决该问题。打开注册表,找到[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\OLEDB]分支,将其下ChunkSize键值改为500,FetchSize"键值改为1000。这两个值默认都是100,这样更改以后就没问题了。

0
相关文章