- 3 名前:デフォルトの名無しさん [2014/10/03(金) 15:33:50.83 ID:tHhdIR5n]
- 前スレ>>971
ありがとうございます。解決しました。バージョンはOracle.DataAccess 4.121.1.0です。 要点:最初のデータINSする際に、適当な文字列をCLOB列に入れる 詰まってた点:最初のデータINSの際に、CLOB列には何も値を入れていなかった(列指定すらしてなかった) CREATE TABLE TEST ( ID NUMBER, NAGAI CLOB, CONSTRAINT PK_TEST PRIMARY KEY(ID)); OracleConnection con = new OracleConnection(); con.ConnectionString = "User Id=test;Password=test;Data Source=test"; con.Open(); //第一段階(CLOBに適当な値入れる。今回の場合OO4OっぽくEMPTYという文字列) OracleCommand myCmd = new OracleCommand("insert into test(id,nagai) values (1,'EMPTY')", con); myCmd.ExecuteNonQuery(); //第二段階(CLOBに本当の値入れる) char[] charArray = "ほんまに長い文章".ToCharArray(); OracleCommand cmd =new OracleCommand("select * from test", con); OracleDataReader rs = cmd.ExecuteReader(); rs.Read(); OracleTransaction txn = con.BeginTransaction(); Oracle.DataAccess.Types.OracleClob tclob = rs.GetOracleClobForUpdate (colno); tclob.Erase();//←最初に入れたEMPTYという文字列を消す。 tclob.Write(charArray, 0, charArray.Length ); txn.Commit(); あー、ビール飲みたい
|

|