Вставьте сгенерированное значение последовательности оракула, используя vb.net
Я новичок в VB.net. Мне нужно изменить существующее приложение, которое подключается к базе данных Oracle.
Мой вопрос: как я могу вставить значение, созданное последовательностью оракула из VB? У меня есть следующий код:
Dim mpData As New MaximoDataSetTableAdapters.MEASUREPOINTTableAdapter
Dim mpTable As New MaximoDataSet.MEASUREPOINTDataTable
mpData.Fill(mpTable)
Dim mData As New MaximoDataSetTableAdapters.MEASUREMENTTableAdapter
Dim mTable As New MaximoDataSet.MEASUREMENTDataTable
Dim mpRow As MaximoDataSet.MEASUREPOINTRow
For Each mpRow In mpTable
Dim mRow As MaximoDataSet.MEASUREMENTRow
mRow = mTable.NewRow()
mRow.POINTNUM = mpRow.POINTNUM
mRow.MEASUREDATE = CStr(Now)
mRow.MEASUREMENTVALUE = tTotal
mTable.Rows.Add(mRow)
mData.Update(mTable)
next
Но я получаю сообщение об ошибке, потому что у меня есть другое поле, ROWSTAMP, которое генерируется последовательностью?
Пожалуйста посоветуй.
С уважением, Раду.
2 ответа
Вы можете создать триггер "перед вставкой", который заполняет столбец rowstamp следующим значением из последовательности. Мне сама эта стратегия не нравится, но это один из вариантов.
Вот пример того, как это сделать здесь
В Oracle колонки не "генерируются последовательностью". Вам нужно извлечь следующее значение из последовательности самостоятельно и указать это значение при вставке строки:
ВЫБЕРИТЕ mysequence.nextval INTO some_variable ОТ двойного;
Затем используйте значение из some_variable в вашем операторе вставки.