在我的程序中,我运行一个“select for update”查询,如下所示:
OracleConnection con = GenerateConnection();
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT col1 FROM table1 WHERE col2 = :COL2 AND rownum = 1 FOR UPDATE WAIT 2";
cmd.Parameters.Add(new OracleParameter(":COL2 ", "some value"));
string myValue = Convert.ToString(cmd.ExecuteScalar());
这很管用。现在我想参数化等待获取锁的时间(由于测试环境较慢,一些集成测试将等待更长的时间)。
因为这个,我试了这个:
OracleConnection con = GenerateConnection();
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT col1 FROM table1 WHERE col2 = :COL2 AND rownum = 1 FOR UPDATE WAIT :WAITFOR";
cmd.Parameters.Add(new OracleParameter(":COL2 ", "some value"));
cmd.Parameters.Add(new OracleParameter(":WAITFOR", 2));
string myValue = Convert.ToString(cmd.ExecuteScalar());
不幸的是,我得到了:
ORA-30005:缺少或无效的等待间隔
我的问题:
我必须做一个
String.Format()
或者我出了什么问题?