Проблема преобразования типов данных OracleC#

Место общения программистов C#
Ответить
Anonymous
 Проблема преобразования типов данных Oracle

Сообщение Anonymous »

У меня есть следующий класс на C#:

Код: Выделить всё

public class ExploreTab
{
public long TabId { get; set; }
public long UserId { get; set; }
public string TabName { get; set; }
public bool? IsIncluded { get; set; }
public long DisplayOrder { get; set; }
}
И следующий метод:

Код: Выделить всё

public async Task GetExploreUserTabsToDownload(long enterpriseId, string userId)
{
using var dbConn =
new OracleConnection(_configuration.GetConnectionString("Db Connection"));

var userExploreTab = (await dbConn.QueryAsync(
@"select to_number(uv.user_id) AS UserId, to_number(ev.view_id) AS TabId, ev.caption AS TabName, to_number(ev.tab_order) AS DisplayOrder,
CASE
WHEN uv.permission_cd = 'I'
THEN 'true'
WHEN uv.permission_cd = 'E'
THEN 'false' END AS IsIncluded
FROM  BE_CFG_MART_VIEWS  ev
left join BE_PERM_VIEWS uv on (ev.view_id=uv.view_id and ev.enterprise_id=uv.enterprise_id and uv.user_id in (:userId))
where ev.enterprise_id = :enterpriseId and uv.user_id is not null order by tab_order",
new
{
enterpriseId,
userId
})).ToList();

return userExploreTab;
}
Каждый раз при выполнении запроса выдается следующее исключение:

ORA-12801: ошибка, сигнализируемая в параллельном запросе сервер P00I, экземпляр 6\nORA-01722: неверный номер

Я понял проблему. За исключением этого столбца ev.caption AS TabName, у других возникают проблемы с преобразованием. Я попытался преобразовать другой столбец в_номер, как в C#, большинство из них имеют длинный тип данных. Я не уверен, но есть ли какой-либо альтернативный или хороший подход к решению проблемы преобразования в том же фрагменте кода? Я надеюсь, что преобразование можно выполнить в самом запросе.

Подробнее здесь: https://stackoverflow.com/questions/792 ... sion-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»