Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Сделал линк с ораклом.

При выборке

SELECT [GHHEA_ID]
     
  FROM [OracleServer]..[DBP0298-LF02].[TB_STWK_GH_HEA]
Получаю

Сообщение 9803, уровень 16, состояние 1, строка 1
Недопустимые данные для типа "numeric".

На время сделал так
select * from openquery(OracleServer,
'
select 
    to_char(ghhea_heat) as NumPlavka
from "DBP0298-EAF02"."TB_STWK_GH_HEA"
')

С чем это связано с клиентом Oracle? что sql не понимает тип оракла?
17 янв 11, 16:01    [10085769]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Ну же UP
17 янв 11, 19:01    [10086749]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
hosTuk
что sql не понимает тип оракла?

Читаем внимательно сообщение
Недопустимые данные для типа "numeric"
А не непонятный тип
17 янв 11, 20:43    [10087153]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Glory,

В Oracle тип данных integer того столбца, для которого MS SQL Sever говорит, что недопустимый; в чем же недопустимость?
19 янв 11, 12:59    [10096104]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
hosTuk
Glory,

В Oracle тип данных integer того столбца, для которого MS SQL Sever говорит, что недопустимый; в чем же недопустимость?

Вы понимаете разницу между типом данных и значением ?
19 янв 11, 13:00    [10096117]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Glory,

Ну и в чем же недопустимы мои значения? предложите.

select count(*)
from openquery(OracleServer,
'
select 
    to_char(ghhea_heat) as NumPlavka
from "DBP0298-EAF02"."TB_STWK_GH_HEA"
') as InfoOracle
where ISNUMERIC(NumPlavka) = 0

Результат 0
Все значения могут быть переведены в числовой тип. В чем недопустимость?
19 янв 11, 13:32    [10096428]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
hosTuk
Все значения могут быть переведены в числовой тип. В чем недопустимость?


ISNUMERIC returns 1 when the input expression evaluates to a valid numeric data type; otherwise it returns 0. Valid numeric data types include the following:
int numeric bigint money smallint smallmoney tinyint float decimal real

Ну ка переведите ка все значения в tinyint, например
19 янв 11, 13:36    [10096451]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Glory,

Что перевести в tinyint? Исходные данные? зачем?
19 янв 11, 14:13    [10096755]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
hosTuk
Glory,

Что перевести в tinyint? Исходные данные? зачем?

Затем, что по вашей логике ISNUMERIC гарантирует такой перевод
19 янв 11, 14:15    [10096773]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Glory,

Этим я хотел только показать, что в столбце данных оракл, содержаться значения кот. переводяться в числа.
И не понимаю, в чем может быть ошибка; и костыль с to_char мне не нравится.
19 янв 11, 14:18    [10096812]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
hosTuk
Glory,

Этим я хотел только показать, что в столбце данных оракл, содержаться значения кот. переводяться в числа.

Что за тип данных такой у вас - "числа" ?
tinyint - не "число" ?
19 янв 11, 14:20    [10096824]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Konst_One
Member

Откуда:
Сообщений: 11620
Here are four methods to try to work around the problem:

1) Set the Length property for NUMERIC column in Oracle table.
2) If you are not retrieving the NUMERIC column, one workaround is to use OPENQUERY instead of a four-part name in your distributed query.
3) Use the TO_CHAR function to convert the data in the numeric field to a character value (note that you may have to convert it back for applications that require math operations). For example:


SELECT * FROM OPENQUERY(mylinkedserver, 'select TO_CHAR(F1) from table1')


4) The best workaround, if possible, is to change the field type in the table to a defined value, such as NUMERIC(15), because many non-Oracle applications have trouble with this data type. However, many servers have corporate restrictions on what can be changed and who can change them. If you can't change the data type on the server, then use one of the other options above.
19 янв 11, 14:21    [10096831]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
Konst_One
Here are four methods to try to work around the problem:

1) Set the Length property for NUMERIC column in Oracle table.

Только автор утверждает, что "В Oracle тип данных integer того столбца"
19 янв 11, 14:22    [10096840]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Konst_One
Member

Откуда:
Сообщений: 11620
Glory
Konst_One
Here are four methods to try to work around the problem:

1) Set the Length property for NUMERIC column in Oracle table.

Только автор утверждает, что "В Oracle тип данных integer того столбца"


но мы же не видели до сих пор скрипта создания этой таблицы оракл, поэтому я джумаю , что там стоит NUMERIC , так проще всего в оракле и этим многие пользуются, а потом проблемы имеют
19 янв 11, 14:26    [10096869]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Konst_One,

спасибо.

Менять тип не рискну у БД стороннего приложения.
Ммм.. это относится только к провайдеру MSDAORA OLE DB?
Т.к. я использовал OraOLEDB.Oracle.
19 янв 11, 14:29    [10096897]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Glory,

Toad 9.1 в своей визуальной среде сообщает что тип integer.
19 янв 11, 14:31    [10096917]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Скрипт сгенерированный ЖАБОЙ

CREATE TABLE "DBP0298-EAF02".TB_STWK_GH_HEA
(
  GHHEA_ID                INTEGER,
19 янв 11, 14:33    [10096937]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
hosTuk
Glory,

Toad 9.1 в своей визуальной среде сообщает что тип integer.

Вы, по-моему, до сих пор так и не поняли разницы между типом данных и значением
19 янв 11, 14:34    [10096941]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Glory
hosTuk
Glory,

Toad 9.1 в своей визуальной среде сообщает что тип integer.

Вы, по-моему, до сих пор так и не поняли разницы между типом данных и значением


Это я понимаю.
Я не понимаю, что вы хотите этим сказать.
19 янв 11, 14:37    [10096966]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
hosTuk
Glory
пропущено...

Вы, по-моему, до сих пор так и не поняли разницы между типом данных и значением


Это я понимаю.
Я не понимаю, что вы хотите этим сказать.
Что надо на значения смотреть, а не на типы данных.
19 янв 11, 14:39    [10096982]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
hosTuk
Glory
пропущено...

Вы, по-моему, до сих пор так и не поняли разницы между типом данных и значением


Это я понимаю.
Я не понимаю, что вы хотите этим сказать.

То, что не получится запихнуть в тип данных значение, которое в него невозможно запихнуть
О чем вам сервер и сообщил
19 янв 11, 14:40    [10096983]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
hosTuk
Member

Откуда:
Сообщений: 455
Glory,

В итоге без точного определения типа в Оракле ms sql хочет перевести мне данные(оракловского integer) в ms sql'ый tinyint?

Данные от [15;313]
19 янв 11, 14:45    [10097036]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37254
hosTuk
Glory,

В итоге без точного определения типа в Оракле ms sql хочет перевести мне данные(оракловского integer) в ms sql'ый tinyint?

Данные от [15;313]
(рукалицо)
19 янв 11, 14:46    [10097042]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Glory
Member

Откуда:
Сообщений: 104751
hosTuk
Glory,

В итоге без точного определения типа в Оракле ms sql хочет перевести мне данные(оракловского integer) в ms sql'ый tinyint?

Данные от [15;313]

Такое впечатление, что вы слепой. Не можете прочитать предложение из 5 слов

Недопустимые данные для типа "numeric".
19 янв 11, 14:47    [10097047]     Ответить | Цитировать Сообщить модератору
 Re: Недопустимые данные для типа "numeric" c линкед Oracle  [new]
Alx65
Member

Откуда: МО
Сообщений: 402
Попробуйте так

SELECT CAST([GHHEA_ID] AS INT)
     
  FROM [OracleServer]..[DBP0298-LF02].[TB_STWK_GH_HEA]

или

SELECT CAST([GHHEA_ID] AS VARCHAR)
     
  FROM [OracleServer]..[DBP0298-LF02].[TB_STWK_GH_HEA]
19 янв 11, 14:55    [10097131]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить