[问题] oracle Insert...returning into

楼主: g66932007 (孤单的人)   2014-03-07 21:43:07
请问
我用oracle的sequence来产生流水号,
以及trigger来组成 "产品名称_ID" 的流水号(Varchar)
我必须在每次insert时取得这次的流水号,来做insert其他table的key值
所以用
sql="insert into table (C1,C2) value (V1,V2) RETURNING ID INTO :new_Id"
ocCmd = new OracleCommand(sql, OracleConnect);
if (OracleConnect.State != ConnectionState.Open)
OracleConnect.Open();
ocCmd.Parameters.Add(new OracleParameter("new_id",
OracleDbType.Varchar2,3200,ParameterDirection.Output));
ocCmd.ExecuteNonQuery();
sNew_ID = ocCmd.Parameters["new_id"].Value.ToString();
取回的sNew_ID都是空值......
但若把流水号不组成 "产品名称_ID" ,只用ID 存成number
就可以成功回传这次insert的ID....
是因为 insert...returning into 不能传回varchar吗??
还是我这段写错了?
ocCmd.Parameters.Add(new OracleParameter("new_id",
OracleDbType.Varchar2,3200,ParameterDirection.Output));

Links booklink

Contact Us: admin [ a t ] ucptt.com