oracle查询中的nextval函数

时间:2016-03-10 00:52:15

标签: c# sql asp.net oracle

我有两个oracle查询。在我插入的第一个查询中,我插入Sequesnce Next值(nextval)然后我需要将它插入到下一个查询。我需要返回当前值(currval)。

  

错误是:
ORA-01036:非法变量名称/编号

我认为这发生在currval函数中? 查询

 string query = @"INSERT INTO TBL_TICKET_TYPE(NewsID,NAME) 
                                 VALUES(newsid.nextval,:NAME)";

            cmd = db.GetSqlStringCommand(query);

            db.AddInParameter(cmd, "NAME", DbType.String, TicketTypes.NAME);

            db.ExecuteNonQuery(cmd);

            //String query3 = "Select newsid.currval from dual";


            String query2 = "INSERT INTO TBL_TICKET_TYPE_TAX(TICKETTYPEID,TAXID)VALUES(newsid.currval,:LINENO)";
            cxd = db.GetSqlStringCommand(query);
            db.AddInParameter(cxd, "LINENO", DbType.Int32, 1);
            db.ExecuteNonQuery(cxd);

1 个答案:

答案 0 :(得分:0)

您需要做的是从查询开始,以获取newsid.nextval并将结果放入变量:

SELECT newsid.nextval FROM dual;

然后,您可以在query(代替newsid.nextval)和query2(代替newsid.currval)中使用此变量。

希望这有帮助。