ต้องการอ่าน text file โดยใช้ vb.net แล้วส่งข้อมูลไป insert เข้า oracle db แต่ตอน generate clob ภาษาญี่ปุ่นหลายเป็น ?????
พอจะมีวิธีแก้ไขไหมครับ
ตัวอย่างโค้ด
Public Function GenClob(ByVal strProcedure As String, ByVal strData As String) As Object
Dim cmd As System.Data.OracleClient.OracleCommand = _cmd
_cmd.Parameters.Clear()
Dim mem As New System.IO.MemoryStream(DirectCast(strData, String).Length * 2)
Dim sr As New System.IO.StreamWriter(mem, System.Text.ASCIIEncoding.Unicode)
sr.Write(strData)
sr.Flush()
cmd.CommandText = strProcedure
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New System.Data.OracleClient.OracleParameter("outClob", System.Data.OracleClient.OracleType.Clob)).Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()
Dim tempLob As System.Data.OracleClient.OracleLob = cmd.Parameters(0).Value
tempLob.BeginBatch(System.Data.OracleClient.OracleLobOpenMode.ReadWrite)
tempLob.Write(mem.ToArray, 2, mem.Length - 2)
tempLob.EndBatch()
sr.Close()
mem.Close()
Return tempLob
End Function
insert ภาษาญี่ปุ่นเข้า Oracle DB
พอจะมีวิธีแก้ไขไหมครับ
ตัวอย่างโค้ด
Public Function GenClob(ByVal strProcedure As String, ByVal strData As String) As Object
Dim cmd As System.Data.OracleClient.OracleCommand = _cmd
_cmd.Parameters.Clear()
Dim mem As New System.IO.MemoryStream(DirectCast(strData, String).Length * 2)
Dim sr As New System.IO.StreamWriter(mem, System.Text.ASCIIEncoding.Unicode)
sr.Write(strData)
sr.Flush()
cmd.CommandText = strProcedure
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New System.Data.OracleClient.OracleParameter("outClob", System.Data.OracleClient.OracleType.Clob)).Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()
Dim tempLob As System.Data.OracleClient.OracleLob = cmd.Parameters(0).Value
tempLob.BeginBatch(System.Data.OracleClient.OracleLobOpenMode.ReadWrite)
tempLob.Write(mem.ToArray, 2, mem.Length - 2)
tempLob.EndBatch()
sr.Close()
mem.Close()
Return tempLob
End Function