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

Откуда:
Сообщений: 4
Привет всем. Подскажите если кто знает)
Есть запрос который готовит данные в mssql и вставляет их в Oracle.
Делаю вставку на прямую вставляет хорошо.
При вставки через переменные, в Oracle вставляет иероглифы, в mssql нормально отображаютса данные.
Подскажите где собака зарыта((((
Запрос вот какой:
DECLARE @NAZVA varchar(50)
DECLARE @KOD varchar(12)
DECLARE @Nazva_P varchar(50)
DECLARE @DodPar varchar (max)

SET @NAZVA='Назва "Тест66"'
SET @KOD=31305
SET @Nazva_P='назва в кирилице'
SET @DodPar='<Attributes></Attribute><FrienName>Номер</FrienName></Attribute></Attributes>'

EXECUTE ( 'begin SS.STO_SS_API.add_user(?,?,?,?); end;', @NAZVA, @KOD, @Nazva_P, @DodPar) AT DBORA;

SELECT @NAZVA as NAZVA, @KOD as KOD,@Nazva_P as Nazva_P,@DodPar as DodPar

ета вставка проходит нормально, но она не умеет вставлять длинные xml, поетому не подходит:
EXECUTE ('call SS.STO_SS_API.add_user(''Назва "Тест66"'',''31305'',''назва в кирилице'', TO_CLOB('' 
<Attributes></Attribute><FrienName>Номер</FrienName></Attribute></Attributes>''))') AT DBORA

а ето иероглифы:
NAZVA_P: "Ca oaio?ae?ciaaia"
Dodpar: "???????††???????†††???????????????????†††?????????????????????????††††"
22 май 15, 09:05    [17674522]     Ответить | Цитировать Сообщить модератору
 Re: Вставка даных в Oracle через Mssql  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2392
Блог
Misha_M,

EXECUTE (N'call SS.STO_SS_API.add_user(''Назва "Тест66"'',''31305'',''назва в кирилице'', TO_CLOB('' 
<Attributes></Attribute><FrienName>Номер</FrienName></Attribute></Attributes>''))') AT DBORA
??
22 май 15, 10:05    [17674931]     Ответить | Цитировать Сообщить модератору
 Re: Вставка даных в Oracle через Mssql  [new]
Misha_M
Member

Откуда:
Сообщений: 4
Павел Воронцов, то же самое. Пробовал и так:
EXECUTE (N'begin SS.STO_SS_API.add_user(?,?,?,?); end;', @NAZVA, @KOD, @Nazva_P, @DodPar) AT DBORA;

безрезультатно.

мне не подходит етот запрос
EXECUTE (N'call SS.STO_SS_API.add_user(''Назва "Тест66"'',''31305'',''назва в кирилице'', TO_CLOB('' 
<Attributes></Attribute><FrienName>Номер</FrienName></Attribute></Attributes>''))') AT DBORA

потому что Оракл не позволяет использовать в SQL строки размером более 4000 байт.
Для работы c текстовыми полями я использую тип CLOB. Но до тех пор пока текст строки не превышает 4000 байт.
А тут мне нужно вставить больше 4000 (((
Через переменные получаетса вставить, но кодировка хромает
22 май 15, 10:49    [17675193]     Ответить | Цитировать Сообщить модератору
 Re: Вставка даных в Oracle через Mssql  [new]
Glory
Member

Откуда:
Сообщений: 104751
Misha_M
то же самое. Пробовал и так:

А вы узнали, какая команда приходит на ваш Oracle ?
22 май 15, 10:51    [17675220]     Ответить | Цитировать Сообщить модератору
 Re: Вставка даных в Oracle через Mssql  [new]
Misha_M
Member

Откуда:
Сообщений: 4
спасибо всем. Решил етот вопрос.
22 май 15, 11:11    [17675411]     Ответить | Цитировать Сообщить модератору
 Re: Вставка даных в Oracle через Mssql  [new]
Misha_M
Member

Откуда:
Сообщений: 4
ой, забыл расказать как ))
так вот:

--DECLARE @NAZVA varchar(50)
DECLARE @KOD varchar(12)
DECLARE @Nazva_P varchar(50)
--DECLARE @DodPar varchar (max)

--SET @NAZVA='Назва "Тест66"'
SET @KOD=31305
SET @Nazva_P='назва в кирилице'
--SET @DodPar='<Attributes></Attribute><FrienName>Номер</FrienName></Attribute></Attributes>'

EXECUTE ( 'begin SS.STO_SS_API.add_user(?,?,?,?); end;', 'Назва "Тест66"', @KOD, @Nazva_P, 
'<Attributes>
  </Attribute>
     <FrienName>Номер</FrienName>
  </Attribute>
</Attributes>...и так много раз') AT DBORA;

и тут запхал всю xml-строку которая мне нужна. Влезло все и кодировка то что надо)
22 май 15, 11:27    [17675533]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить