powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / LONG
12 сообщений из 12, страница 1 из 1
LONG
    #32097155
HL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HL
Гость
Необходимо снхронизировать таблицу из 2-х разных баз
проблема в том что используется поля LONG, как раз те поля которые надо обновить, при их несовпадении
Обычные запросы, на обновление, вставку,..., не проходят
Может кто сталкивался ?
...
Рейтинг: 0 / 0
LONG
    #32097168
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тексты давай
...
Рейтинг: 0 / 0
LONG
    #32097228
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри типа:
--------
create table T1( L long )
/

insert into T1(L) values('ABC')
/

create table T2( L long )
/

declare
Ltmp long;
cursor C is
select L from T1;
begin
open C;
loop
fetch C into Ltmp;
exit when C%notfound;
insert into T2(L) values(Ltmp);
commit;
end loop;
close C;
end;
/
...
Рейтинг: 0 / 0
LONG
    #32097255
HL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HL
Гость
select
t.CODE,
t.TXT
from TB_H@tt t, TB_H@oo o
where
T.CODE = O.CODE
and t.TXT = o.TXT
ORA-00997: illegal use of LONG datatype ORA-02063: preceding line from TTT

insert into TB_H
select
*
from TB_H@oo o
ORA-00997: illegal use of LONG datatype

update -//-
...
Рейтинг: 0 / 0
LONG
    #32097320
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это потому-что есть ограничения на тип LONG при использовании в конструкциях: CREATE TABLE ....AS SELECT <long field> и INSERT INTO....SELECT <long fiilds>.

Надо на CLOB переходить, LONG даже уже в 8.0.X оставлен просто для совместимости
...
Рейтинг: 0 / 0
LONG
    #32097436
Дес
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как перевести таблицы имеющие RAW и Long RAW на CLOB? без потери данных? и по возможности чтобы старый софт работал?
...
Рейтинг: 0 / 0
LONG
    #32097545
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак, надо всё переписывать
...
Рейтинг: 0 / 0
LONG
    #32098375
HL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HL
Гость
Ekuku, проблема так все равно не решается.
Если считывать одно LONG поле - проходит, но извлечь всю запись:

declare
cursor c1 is...
d2 c1%rowtype;
....
fetch c1 into d2;
...

Начинает ругаться:
declare
*
ORA-06502: PL/SQL: numeric or value error ORA-06512: at line ..

Пробовал:
declare
p1 VARCHAR2(15) ;
p2 VARCHAR2(1) ;
p3 VARCHAR2(1) ;
p4 LONG;
...
fetch c1 into p1,p2,p3,p4;

все нормально пока без LONG поля, как только вставляю - те же проблемы
...
Рейтинг: 0 / 0
LONG
    #32098386
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А потомучто размерность у типа LONG как тип PL/SQL и тип БД - разный.
В PL/SQL максим. 32760 байт, в БД 2Gb кажется.
...
Рейтинг: 0 / 0
LONG
    #32098397
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде такое-же и вроде работает ,или я нюансы не уловил? :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
create table T1( s varchar2( 100 ), n number,  L long )

insert into T1(s,n,L) values( 1 , 1 ,'1')

insert into T1(s,n,L) values( 2 , 2 ,'2')

create table T2( s varchar2( 100 ), n number,  L long )

declare
  Ltmp long;
  Stmp varchar2( 100 );
  Ntmp number;
  cursor C is
    select s,n,l 
	from T1; 
begin
  open C;
  loop
    fetch C into Stmp,Ntmp,Ltmp;
	exit when C%notfound;
	insert into T2(s,n,L) values(Stmp,Ntmp,Ltmp);
  end loop;
  close C;
end;
...
Рейтинг: 0 / 0
LONG
    #32098468
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--> softbuilder
.. пошарил в доках 817 и не нашел где написано, что
тип LONG для PL/SQL отличается от типа LONG в базе
Приведи выдержку из доки для меня,серого..
Думаю другим тоже интересно будет,
(хотя бы для тех кто на 7-м работает)
...
Рейтинг: 0 / 0
LONG
    #32098588
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну блин, детский сад...
Вот, пожалуйста:PL/SQL User’s Guide and Reference
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
LONG and LONG RAW
You use the LONG datatype to store variable-length character strings. The LONG
datatype is like the VARCHAR2 datatype, except that the maximum size of a LONG
value is  32760  bytes.

You can insert any LONG value into a LONG database column because the maximum
width of a LONG column is  2 ** 31  bytes. However, you cannot retrieve a value longer
than  32760  bytes from a LONG column into a LONG variable.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / LONG
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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