No way to insert large data into oracle Clob???

G

Guest

Does anyone have the same problem?
I use follow code to insert a large xml into oracle database. The data is inserted, however shows as "¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿..


xmlRawDom.Load("D:\testActual.xml"
dataString = xmlRawDom.OuterXm

Dim AE As New System.Text.ASCIIEncodin
Dim ByteArray As Byte() = AE.GetBytes(dataString

rsConnection = DBClient.OpenDBConnection(_realSuiteDBString, True
tx = rsConnection.BeginTransactio
Dim rsCommand As New OracleClient.OracleComman
rsCommand = rsConnection.CreateCommand(
rsCommand.Transaction = t

rsCommand.CommandText = "declare xx Clob; begin dbms_lob.createtemporary(xx, false, 0); :tempClob := xx; end;
rsCommand.Parameters.Add(New OracleClient.OracleParameter("tempClob", OracleClient.OracleType.Clob)).Direction = ParameterDirection.Outpu
rsCommand.ExecuteNonQuery(

Dim tempLob As OracleLo
tempLob = rsCommand.Parameters(0).Valu
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite
tempLob.Write(ByteArray, 0, ByteArray.Length
tempLob.EndBatch(

rsCommand.Parameters.Clear(
rsCommand.CommandText = "Realdata_Rxbdoc.InsertXMLtoQ

rsCommand.CommandType = CommandType.StoredProcedur
Dim oraparameter As New OracleClient.OracleParameter("strXML", OracleClient.OracleType.Clob
oraparameter.Direction = ParameterDirection.Inpu
oraparameter.SourceVersion = DataRowVersion.Origina
oraparameter.SourceColumn = "MSGDATA
oraparameter.Value = tempLo
rsCommand.Parameters.Add(oraparameter
rsCommand.ExecuteNonQuery(
tx.Commit(
rsConnection.Close(


********************
procedure

PROCEDURE InsertXMLtoQ(strXML IN CLOB ) A

BEGI
INSERT INTO ACTUALJOB (RXBDOC_ACTUALJOB_ID,MSGDATA) VALUES (1,strXML)
END

****************************
For small data, I can insert data directly like

'Dim conn As OracleConnection = New OracleConnection(_realSuiteDBString
'Dim cmd As OracleCommand = New OracleCommand("InsertXML", conn
'Dim s As FileStream = File.OpenRead("D:\rawActual.xml"
'Dim r As StreamReader = New StreamReader(s
'cmd.CommandType = CommandType.StoredProcedur
'cmd.Parameters.Add("strXML", OracleType.Clob
'cmd.Parameters(0).ParameterName = "strXML
'cmd.Parameters(0).Direction = ParameterDirection.Inpu
'cmd.Parameters(0).Size = r.BaseStream.Lengt
'cmd.Parameters(0).Value = r.ReadToEnd(

'conn.Open(
'Dim i As Int16 = cmd.ExecuteNonQuery(
'Console.WriteLine("{0} rows inserted", i

But for large data,this method give error:'ORA-01460: unimplemented or unreasonable conversion requested
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top