Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
abrashka
Member

Откуда:
Сообщений: 521
День добрый!
Нужно загрузить данные из таблицы в Оракле в таблицу в SQL.
Для этого пользуюсь DTS в SQL.

Использую Microsoft OLE DB Provider for Oracle и получаю:
1) перевернутый текст(написано справа налево).
2) Вместо некоторых букв получаю вопросительные знаки.

В Оракле данные на турецком языке,т.е. возможны буквы с закорючками и т.п.

База данных в SQL имеет COLLATION Hebrew_CI_AS

Последнее, что хотелось бы- это изменение COLLATION,затем идет строительство DWH, будут проблемы...

Но подозреваю, что проблема не в SQL, ибо когда делаю PREVIEW в окне SOURCE в DTS, то вижу и перевернутый текст и вопросительные знаки...

Подкажите плз, как можно получить правильные данные? Нужно ли как-то настраивать OLEDB под конкретную задачу?

Спасибо!
18 дек 11, 13:20    [11784475]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
aleks2
Guest
1. Выгрузи данные из Oracle в csv-файл.
2. Загрузи csv-файл в MS SQL.
3. Пользуй UNICODE.
18 дек 11, 16:54    [11784901]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
abrashka
Member

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

Спасибо! Сейчас попробую...
Что есть "Пользуй UNICODE"? В базе данных текстовые поля определить как nvarchar, этого достаточно?
18 дек 11, 17:56    [11785015]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
abrashka
Member

Откуда:
Сообщений: 521
Попробовал импортировать в файл CSV, открываю его в блокноте- тоже перевернутое изображение и знаки вопроса :(
18 дек 11, 18:13    [11785065]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 851
abrashka,

Развернуть изображение можно с помощью функции REVERSE, т.е. после загрузки выполни апдейт такого вида.

update t1
set [name] = reverse([name])


И не очень понятно почему данные на турецком заносятся в базу с языковым набором на иврите. Турецкий вроде латиницу использует, т.е. пишется слева направо, а не наоборот, справа налево, как на иврите.
18 дек 11, 19:05    [11785139]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
abrashka
Member

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

Спасибо! Про реверс я знаю, он даже в Оракле работает, так что я могу еще в SOURCE в QUERY DTS-a использовать эту функцию, но интересно почему так происходит.

На счет иврита и всего остального- с этим проблем нет, данные с обычными(английскими) буквами импортируются нормально. Но вот с турецкими- беда. В компании несколько заводов зарубежом, один из которых кстати в Москве, все посылают данные на английском, только с турками все никак не договоримся...

Почему изначально хранилище данных ивритское- сказать не могу, так исторически сложилось, видимо не предполагалась обработка данных из других стран на других языках.

В любом случае, из личного опыта могу сказать, что в базах с ивритским COLLATION никогда не было проблем с английскими буквами и текстами.
18 дек 11, 19:19    [11785163]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
aleks2
Guest
abrashka
Попробовал импортировать в файл CSV, открываю его в блокноте- тоже перевернутое изображение и знаки вопроса :(

1. Выгрузи бинарное представление строковых данных, страдалец.
2. Как ты вопче различаешь в турецком, хде начало, а хде конец?
18 дек 11, 20:07    [11785254]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
abrashka
Member

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

Что есть "бинарное представление"?

Я использую SQL2000. В DTS из коннекш(ОЛЕДБ Оракл) в таблицу MS SQL.
Чтоб получить "Бинарное...", что я должен указать в коннекшн?

Сейчас в QUERY я указал крубо говоря:
select id, reverse(customer_name) from customers


Реверс- чтоб получить правильное изображение, а вот со знаками вопроса непонятка... :(
С зеркальным изображением тоже непонятка, но в моих силах его перевернуть, а вот со знаками запара :(

Откуда знаю, что изображение перевернуто? Ну там легко :) Там названия фирм, если написано kitsalP lubmatsI, то не перепутаешь :)

Короче сплошной нофелет :)
18 дек 11, 20:26    [11785312]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
aleks2
Guest
declare @t table(str nvarchar(1000))
declare @tt table(bin varbinary(2000))

insert @t select N'Пусть это будет по турецки'

insert @tt
select cast(str as varbinary(2000)) from @t


select bin, cast(bin as nvarchar(1000)) from @tt


ЗЫ. Оракловской функции cast(...) я не знаю, но уверен она тама есть.
19 дек 11, 06:06    [11786463]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
abrashka
Member

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

Спасибо, попробую так
20 дек 11, 10:43    [11794231]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка данных из Oracle в SQL2000, хелп плз!  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 851
aleks2
ЗЫ. Оракловской функции cast(...) я не знаю, но уверен она тама есть.


Есть, как не быть - Oracle CAST
20 дек 11, 16:43    [11798208]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить