powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обрезание строки до 253 символов через dblink
16 сообщений из 16, страница 1 из 1
Обрезание строки до 253 символов через dblink
    #39244636
Добрый день.

Существует dblink между Oracle и MS SQl Server 2008.
При передачи строки на ту сторону, она обрезается до 253 символов и приходит куцой.

строка вставляется командой Insert

колонка на той стороне имеет тип varchar(8000).


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
declare
  res    number;
  text   varchar2(4000);
begin
  text := 'тут очень длинная строка больше 253 но меньше 8000 симовлов';

  insert into dbo.table_name@dblink_name("OuterID", "XmlData", "Action") values (1, text, 'INSERT');
end;



Подскажите пожалуйста в куда копать...
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39244852
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
sqlplus user/pass
SQL> describe dbo.table_name@dblink_name
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39276161
Vadim Lejnin,

RIDNOT NULLNUMBER(10)RBO_IDNOT NULLNUMBER(18)DealTransactIDNUMBER(15)XmlDataNOT NULLVARCHAR2(8192 CHAR)FullLenNOT NULLNUMBER(10)PartIDNOT NULLNUMBER(3)DocTypeNUMBER(10)ActionNOT NULLVARCHAR2(20)Date0NOT NULLDATEDate1DATEStateNUMBER(3)State_DescVARCHAR2(32512 CHAR)

сейчас решили проблему тем, что передаем по частям по 253 символа, но это не дело :(
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39276163
проблема с полем "XmlData"
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39276177
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Азат Идиятуллин...
колонка на той стороне имеет тип varchar(8000).
...
Код: plsql
1.
2.
3.
4.
...
  text   varchar2(4000);
...
  text := 'тут очень длинная строка больше 253 но меньше 8000 симовлов';



у меня в голове как-то не синхронизируется размерность этих 3-х строк
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39276181
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Азат Идиятуллин,
Через какого провайдера настроен dblink?
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39277531
Vadim Lejnin,

используем oracle 9i transparent gateway (версия 9.2.0.1.0)
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39277563
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Азат Идиятуллин
Это не провайдер
Что используется, oledb, или odbc?
Для 9i были баги в odbc
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39277686
Vadim Lejnin,

наш админ говорит, что
"Используется tg4msql, hsodbc не используем"
провайдер "Oracle provider"

ни про ODBC, ни про OLE DB ничего не сказал.
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39277696
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Азат Идиятуллин,
1) А если явно вставить - обрежется?
Код: plsql
1.
2.
3.
4.
insert into dbo.table_name@dblink_name("OuterID", "XmlData", "Action") values (
1
,'_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789'
, 'INSERT');



2) ограничение в SQL ядре Oracle для varchar2 - 4000 char
попробуйте явный cast для для этой колонки выполнить
Может неявное преобразование типов?
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39277709
SetLong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Азат Идиятуллиниспользуем oracle 9i transparent gateway (версия 9.2.0.1.0)
Угу. А он-то как раз не в курсе про varchar2(8000).
Судя по длине 253 - преобразует в clob или long.
А на clob влияют всякие смешные штуки типа SQL*Plus-ного "SET LONG", по умолчанию как раз в районе 255 символов :)
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39277711
jtds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Азат Идиятуллин"Используется tg4msql, hsodbc не используем"это тот же odbc, только dll/so внутрь положены какой-то дремучей версии даже для времен 9i. Да еще и платный.
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39277713
UDW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Азат Идиятуллин,

А если инсерт выполнить на mssql, вытянув данные с oracle?
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39278414
UDW,

не получиться.
та сторона отказывается делать линк с MSSQL на Oracle
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39278417
Vadim LejninАзат Идиятуллин,
1) А если явно вставить - обрежется?
Код: plsql
1.
2.
3.
4.
insert into dbo.table_name@dblink_name("OuterID", "XmlData", "Action") values (
1
,'_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789'
, 'INSERT');




Пробовал. В любом случае обрезает до 253 символов, что напрямую, что через переменные... даже если сделать insert into select

Vadim Lejnin2) ограничение в SQL ядре Oracle для varchar2 - 4000 char
попробуйте явный cast для для этой колонки выполнить
Может неявное преобразование типов?

не понял
...
Рейтинг: 0 / 0
Обрезание строки до 253 символов через dblink
    #39278502
UDW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Азат Идиятуллин,

А если не через PL/sql? загнать строку в темповую табличку и из нее сделать insert as select?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обрезание строки до 253 символов через dblink
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]