前スレ>>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();

あー、ビール飲みたい