Я хочу создать обобщенный метод для извлечения последовательностей для моего приложения (OLEDB asp.net DB2)
var seqName="Table1";
string query="SELECT NEXTVAL FOR SchemaName."+seqName+" as seqid FROM sysibm.sysdummy1";
using (OleDbCommand myCommand=new OleDbCommand(query,myConnection))
{
myConnection.Open();
result = Convert.ToInt32(myCommand.ExecuteScalar());
}
Использование этого вместо не будет работать
var seqName="mySeq1";
string query="SELECT NEXTVAL FOR SchemaName.? as seqid FROM sysibm.sysdummy1";
using (OleDbCommand myCommand=new OleDbCommand(query,myConnection))
{
myCommand.Parameters.Add(new OleDbParameter("TabName",seqName));
myConnection.Open();
result = Convert.ToInt32(myCommand.ExecuteScalar());
}
бросает
SQL0104: Token ? was not valid. Valid tokens: <IDENTIFIER>.
Cause . . . . . : A syntax error was detected at token ?. Token ? is
недопустимый токен. Частичный список
действительные токены есть. это
список предполагает, что утверждение
исправить до жетона. Ошибка
может быть раньше в заявлении, но
синтаксис утверждения выглядит как
быть действительным до этого момента. Восстановление
, , : Сделать один или несколько из
следуйте и попробуйте запрос еще раз:
- Проверить оператор SQL в области токена? Исправить
заявление. Ошибка может быть
отсутствует запятая или кавычка, это
может быть слово с ошибкой, или это
может быть связано с порядком
статьи. - Если токен ошибки
поправьте SQL
заявление, потому что оно не заканчивается
действительное предложение.