Есть запрос в базу данных, по ответу поддержки "классы EntitySchemaQuery, Select, Insert, Update, Delete это СУБД-независимое API ", исходя из этого был использован InsertSelect. На PostgreSQL запрос отрабатывает отлично, но в Oracle выдает ошибку при использовании TOP в запросе.
Код запроса:
Query selectQuery = new Select(UserConnection)
.Top(numberCountForNumberPool)
.Column(Column.Parameter(request))
.Column(Column.Parameter(currentUserContactId))
.Column(Column.Parameter(currentUserContactId))
.Column("KtSimManagementInitialPoolNumbers", "KtIccid")
.Column("KtSimManagementInitialPoolNumbers", "KtImsi")
.Column("KtSimManagementInitialPoolNumbers", "KtMsisdn")
.Column("KtSimManagementInitialPoolNumbers", "KtName")
.Column(Column.Parameter(cityAndCountNumbersEntity.GetTypedColumnValue<Guid>(city.Name)))
.Column(Column.Parameter(cityAndCountNumbersEntity.GetTypedColumnValue<string>(note.Name)))
.Column(Column.Parameter(DateTime.UtcNow.Date))
.Column(Column.Parameter(DateTime.UtcNow.Date
.AddDays((int)Core.Configuration.SysSettings.GetValue(UserConnection,
"DayCountForDedicatedPoolNumbers") + 1).AddSeconds(-1)))
.From("KtSimManagementInitialPoolNumbers")
.OrderByAsc("KtSimManagementInitialPoolNumbers", "KtName")
.Join(JoinType.LeftOuter, "KtJasperFullNumberPool")
.On("KtSimManagementInitialPoolNumbers", "KtName")
.IsEqual("KtJasperFullNumberPool", "KtName")
.Where("KtJasperFullNumberPool", "KtName")
.IsNull()
.And("KtSimManagementInitialPoolNumbers", "KtMarketCodeId")
.IsEqual(Column.Parameter(cityForMarketCode));
InsertSelect insertSelectQuery = new InsertSelect(UserConnection)
.Into("KtJasperFullNumberPool")
.Set("KtRequestId", "ModifiedById", "CreatedById", "KtIccid", "KtImsi", "KtMsisdn", "KtName", "KtCityId", "KtNote", "KtReserveDate", "KtReserveToDate")
.FromSelect(selectQuery);
int numberCountInserted = insertSelectQuery.Execute();
Подскажите, есть ли возможность использовать в Select для Oracle - TOP для выборки необходимого количества записей в запросе?