Oracle ODBC x64 - получение 0 при выборе номера (9) столбца - PullRequest
0 голосов
/ 23 апреля 2010

У меня действительно странная проблема со сторонним веб-сервисом, который использует ODBC-соединение с Oracle 10.2.0.3.0.Я написал клиент .NET, который генерирует тот же SQL, что и веб-сервис, чтобы я мог узнать, что происходит.Веб-служба размещена на IIS 6 в режиме x64, поэтому мы используем клиент Oracle x64.

Версия клиента oracle - 10.2.0.1.0.

У меня есть таблица, которая выглядит следующим образом(Я удалил некоторые столбцы и имена):

SQL> describe tablename;

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 KOD                                                VARCHAR2(30)
 ORDNING                                            NUMBER(5)
 AVGIFT                                             NUMBER(9)

Затем я в SQL * Plus выдаю следующее утверждение:

SELECT KOD as kod, AVGIFT as riskPoang
FROM tablename Where upper(KODTYP) = 'OBJLIVSV_RISKVERKSAMTYP' ORDER BY ORDNING

И получаю следующий результат:

KOD                             RISKPOANG
------------------------------ ----------
Hög risk                               55
Mellan risk                            35
Låg risk                               15
Mycket låg risk                         5

Но когда я выполняю тот же самый SQL, используя тот же DSN на той же машине, я получаю это:

Values
Kod: Hög risk           RiskPoäng: 0
Kod: Mellan risk        RiskPoäng: 0
Kod: Låg risk           RiskPoäng: 0
Kod: Mycket låg risk    RiskPoäng: 0

Если я сначала приведу число к varchar, а затем снова вернусь к числу,как это:

SELECT KOD as kod, to_number(to_char(AVGIFT, '99'), '9999999999') as riskPoang
FROM tablename Where upper(KODTYP) = 'OBJLIVSV_RISKVERKSAMTYP' ORDER BY ORDNING

Я получаю правильный результат:

Values
Kod: Hög risk           RiskPoäng: 55
Kod: Mellan risk        RiskPoäng: 35
Kod: Låg risk           RiskPoäng: 15
Kod: Mycket låg risk    RiskPoäng: 5

Кто-нибудь еще испытывал это?Это невероятно раздражает, и я полностью застрял и не уверен, что делать дальше.У нас есть сторонний веб-сервис, который использует эти таблицы, поэтому я должен заставить работать оригинальный SQL-оператор, поскольку не могу изменить его код.

И указатели очень ценятся!: -)

С уважением, Матс

1 Ответ

0 голосов
/ 27 апреля 2010

Бах, это была ошибка Oracle. : - (

Я подумал, что это как-то связано с клиентом Oracle, но я не смог найти никакой информации об этом. Наконец нашел эту страницу на форуме оракула: http://forums.oracle.com/forums/thread.jspa?threadID=862588

Ошибка № 5128512 исправлена ​​на уровне патча 10204.

Надеюсь, это может помочь кому-то еще.

...