[問題] 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