Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
zebzeb
Member

Откуда:
Сообщений: 95
Добрый день!

Есть большая таблица с большим количеством полей varchar2(2000) и полем типа LONG.
При репликации для поля типа LONG используется функция COLTEST

DESC = @CASE(@COLTEST(DESC, MISSING), "1", "SPECIAL", "0", DESC)

Пока остальные поля заполняются небольшими значениями все в порядке. COLTEST применяется к максимально большому значению для поля типа LONG.

Но как только остальные поля тоже начали заполнять большими значениями, то длина поля LONG, при которой COLTEST срабатывает, сократилась до нескольких символов.

Причем просто Insert для поля LONG нормально реплицируется.

Подскажите, пожалуйста, есть ли какое-нибудь ограничение?
23 окт 13, 19:16    [15022829]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
А какая версия? Можете test case привести?
23 окт 13, 19:56    [15022934]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
zebzeb
Member

Откуда:
Сообщений: 95
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
fbo_ggs_Linux_x64_ora11g_64bit

Таблица на источнике

create table DEV.TABL
(
p1 VARCHAR2(15 CHAR) not null,
p2 DATE not null,
p3 VARCHAR2(15 CHAR) not null,
p4 DATE not null,
p5 VARCHAR2(15 CHAR) not null,
p6 NUMBER(10) not null,
p7 VARCHAR2(15 CHAR) not null,
p8 CHAR(1) not null,
p9 CHAR(1) not null,
p10 CHAR(1) not null,
p11 CHAR(1) not null,
p12 VARCHAR2(30 CHAR) not null,
p13 CHAR(1) not null,
p14 CHAR(1) not null,
p15 CHAR(1) not null,
p16 CHAR(1) not null,
p17 VARCHAR2(30 CHAR) not null,
p18 CHAR(1) not null,
p19 VARCHAR2(100 CHAR) not null,
p20 CHAR(1) not null,
p21 VARCHAR2(30 CHAR) not null,
p22 CHAR(1) not null,
p23 CHAR(1) not null,
p24 CHAR(1) not null,
p25 CHAR(1) not null,
p26 VARCHAR2(15 CHAR),
p27 NUMBER(10),
p28 NUMBER(22,7),
p29 DATE,
p30 DATE,
p31 DATE,
p32 NUMBER(22,7),
p33 DATE,
p34 DATE,
p35 DATE,
p36 DATE,
p37 NUMBER(10),
p38 DATE,
p39 DATE,
p40 DATE,
p41 DATE,
p42 NUMBER(10),
p43 NUMBER(22,7),
p44 DATE,
p45 CHAR(1),
p46 DATE,
p47 VARCHAR2(30 CHAR),
p48 VARCHAR2(100 CHAR),
p49 VARCHAR2(1500 CHAR),
p50 VARCHAR2(15 CHAR),
p51 VARCHAR2(30 CHAR),
p52 VARCHAR2(30 CHAR),
p53 VARCHAR2(30 CHAR),
p54 VARCHAR2(15 CHAR),
p55 VARCHAR2(30 CHAR),
p56 VARCHAR2(15 CHAR),
p57 VARCHAR2(75 CHAR),
p58 VARCHAR2(15 CHAR),
p59 VARCHAR2(15 CHAR),
p60 VARCHAR2(250 CHAR),
p61 VARCHAR2(30 CHAR),
p62 VARCHAR2(20 CHAR),
p63 VARCHAR2(50 CHAR),
p64 VARCHAR2(30 CHAR),
p65 VARCHAR2(15 CHAR),
p66 VARCHAR2(250 CHAR),
p67 VARCHAR2(250 CHAR),
p68 VARCHAR2(15 CHAR),
p69 VARCHAR2(30 CHAR),
p70 VARCHAR2(15 CHAR),
p71 VARCHAR2(15 CHAR),
p72 VARCHAR2(15 CHAR),
p73 VARCHAR2(250 CHAR),
p74 VARCHAR2(30 CHAR),
p75 VARCHAR2(30 CHAR),
p76 VARCHAR2(15 CHAR),
p77 VARCHAR2(15 CHAR),
p78 VARCHAR2(15 CHAR),
p79 VARCHAR2(30 CHAR),
p80 VARCHAR2(500 CHAR),
p81 VARCHAR2(50 CHAR),
p82 VARCHAR2(30 CHAR),
p83 VARCHAR2(30 CHAR),
p84 VARCHAR2(15 CHAR),
p85 VARCHAR2(15 CHAR),
p86 VARCHAR2(15 CHAR),
p87 VARCHAR2(15 CHAR),
p88 VARCHAR2(30 CHAR),
p89 VARCHAR2(15 CHAR),
p90 VARCHAR2(15 CHAR),
p91 VARCHAR2(15 CHAR),
p92 VARCHAR2(15 CHAR),
p93 VARCHAR2(15 CHAR),
p94 VARCHAR2(15 CHAR),
p95 VARCHAR2(75 CHAR),
p96 VARCHAR2(250 CHAR),
p97 VARCHAR2(30 CHAR),
p98 VARCHAR2(15 CHAR),
p99 VARCHAR2(15 CHAR),
p100 VARCHAR2(50 CHAR),
p101 VARCHAR2(50 CHAR),
p102 VARCHAR2(250 CHAR),
p103 VARCHAR2(250 CHAR),
p104 VARCHAR2(100 CHAR),
p105 VARCHAR2(30 CHAR),
p106 VARCHAR2(250 CHAR),
p107 LONG,
p108 CHAR(1),
p109 NUMBER(3),
p110 VARCHAR2(30 CHAR),
p111 NUMBER(10),
p112 VARCHAR2(2000 CHAR),
p113 CHAR(1),
p114 CHAR(1),
p115 VARCHAR2(64 CHAR),
p116 VARCHAR2(30 CHAR),
p117 CHAR(1),
p118 VARCHAR2(30 CHAR),
p119 VARCHAR2(64 CHAR),
p120 VARCHAR2(15 CHAR),
p121 VARCHAR2(15 CHAR)
);

Таблица на приемнике

create table DEV.TABL
(
p1 VARCHAR2(15 CHAR) not null,
p2 DATE not null,
p3 VARCHAR2(15 CHAR) not null,
p4 DATE not null,
p5 VARCHAR2(15 CHAR) not null,
p6 NUMBER(10) not null,
p7 VARCHAR2(15 CHAR) not null,
p8 CHAR(1) not null,
p9 CHAR(1) not null,
p10 CHAR(1) not null,
p11 CHAR(1) not null,
p12 VARCHAR2(30 CHAR) not null,
p13 CHAR(1) not null,
p14 CHAR(1) not null,
p15 CHAR(1) not null,
p16 CHAR(1) not null,
p17 VARCHAR2(30 CHAR) not null,
p18 CHAR(1) not null,
p19 VARCHAR2(100 CHAR) not null,
p20 CHAR(1) not null,
p21 VARCHAR2(30 CHAR) not null,
p22 CHAR(1) not null,
p23 CHAR(1) not null,
p24 CHAR(1) not null,
p25 CHAR(1) not null,
p26 VARCHAR2(15 CHAR),
p27 NUMBER(10),
p28 NUMBER(22,7),
p29 DATE,
p30 DATE,
p31 DATE,
p32 NUMBER(22,7),
p33 DATE,
p34 DATE,
p35 DATE,
p36 DATE,
p37 NUMBER(10),
p38 DATE,
p39 DATE,
p40 DATE,
p41 DATE,
p42 NUMBER(10),
p43 NUMBER(22,7),
p44 DATE,
p45 CHAR(1),
p46 DATE,
p47 VARCHAR2(30 CHAR),
p48 VARCHAR2(100 CHAR),
p49 VARCHAR2(1500 CHAR),
p50 VARCHAR2(15 CHAR),
p51 VARCHAR2(30 CHAR),
p52 VARCHAR2(30 CHAR),
p53 VARCHAR2(30 CHAR),
p54 VARCHAR2(15 CHAR),
p55 VARCHAR2(30 CHAR),
p56 VARCHAR2(15 CHAR),
p57 VARCHAR2(75 CHAR),
p58 VARCHAR2(15 CHAR),
p59 VARCHAR2(15 CHAR),
p60 VARCHAR2(250 CHAR),
p61 VARCHAR2(30 CHAR),
p62 VARCHAR2(20 CHAR),
p63 VARCHAR2(50 CHAR),
p64 VARCHAR2(30 CHAR),
p65 VARCHAR2(15 CHAR),
p66 VARCHAR2(250 CHAR),
p67 VARCHAR2(250 CHAR),
p68 VARCHAR2(15 CHAR),
p69 VARCHAR2(30 CHAR),
p70 VARCHAR2(15 CHAR),
p71 VARCHAR2(15 CHAR),
p72 VARCHAR2(15 CHAR),
p73 VARCHAR2(250 CHAR),
p74 VARCHAR2(30 CHAR),
p75 VARCHAR2(30 CHAR),
p76 VARCHAR2(15 CHAR),
p77 VARCHAR2(15 CHAR),
p78 VARCHAR2(15 CHAR),
p79 VARCHAR2(30 CHAR),
p80 VARCHAR2(500 CHAR),
p81 VARCHAR2(50 CHAR),
p82 VARCHAR2(30 CHAR),
p83 VARCHAR2(30 CHAR),
p84 VARCHAR2(15 CHAR),
p85 VARCHAR2(15 CHAR),
p86 VARCHAR2(15 CHAR),
p87 VARCHAR2(15 CHAR),
p88 VARCHAR2(30 CHAR),
p89 VARCHAR2(15 CHAR),
p90 VARCHAR2(15 CHAR),
p91 VARCHAR2(15 CHAR),
p92 VARCHAR2(15 CHAR),
p93 VARCHAR2(15 CHAR),
p94 VARCHAR2(15 CHAR),
p95 VARCHAR2(75 CHAR),
p96 VARCHAR2(250 CHAR),
p97 VARCHAR2(30 CHAR),
p98 VARCHAR2(15 CHAR),
p99 VARCHAR2(15 CHAR),
p100 VARCHAR2(50 CHAR),
p101 VARCHAR2(50 CHAR),
p102 VARCHAR2(250 CHAR),
p103 VARCHAR2(250 CHAR),
p104 VARCHAR2(100 CHAR),
p105 VARCHAR2(30 CHAR),
p106 VARCHAR2(250 CHAR),
p107 LONG,
p108 CHAR(1),
p109 NUMBER(3),
p110 VARCHAR2(30 CHAR),
p111 NUMBER(10),
p112 VARCHAR2(2000 CHAR),
p113 CHAR(1),
p114 CHAR(1),
p115 VARCHAR2(64 CHAR),
p116 VARCHAR2(30 CHAR),
p117 CHAR(1),
p118 VARCHAR2(30 CHAR),
p119 VARCHAR2(64 CHAR),
p120 VARCHAR2(15 CHAR),
p121 VARCHAR2(15 CHAR),
trantime TIMESTAMP(0) ,
optype VARCHAR2(1 CHAR)
);

Supplemental logging

Все поля на источнике были добавлены в Supplemental log group . Кроме поля LONG, конечно.

ALTER TABLE dev.tabl
ADD SUPPLEMENTAL LOG GROUP GGS_tabl_1(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32) ALWAYS;

ALTER TABLE dev.tabl
ADD SUPPLEMENTAL LOG GROUP GGS_tabl_2(P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48,P49,P50,P51,P52,P53,P54,P55,P56,P57,P58,P59,P60,P61,P62,P63,
P64) ALWAYS;

ALTER TABLE dev.tabl
ADD SUPPLEMENTAL LOG GROUP GGS_tabl_3(P65,P66,P67,P68,P69,P70,P71,P72,P73,P74,P75,P76,P77,P78,P79,P80,P81,P82,P83,P84,P85,P86,P87,P88,P89,P90,P91,P92,P93,P94,P95,
P96) ALWAYS;

ALTER TABLE dev.tabl
ADD SUPPLEMENTAL LOG GROUP GGS_tabl_4(P97,P98,P99,P100,P101,P102,P103,P104,P105,P106,P108,P109,P110,P111,P112,P113,P114,P115,P116,P117,P118,P119,P120,P121) ALWAYS;

Далее процессы репликации

Экстракт

EXTRACT EXT
USERID gg_admin@orcl, password gg_admin
EXTTRAIL /opt/oracle/product/11.2.0/dbhome_1/goldengate/dirdat/exttrail/lt
TABLE dev.tabl, KEYCOLS(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48,P49,P50,P51,P52,P53,P54,P55,P56,P57,P58,P59,P60,P61,P62,P63,P64,P65,P66,P67,P68,P69,P70,P71,P72,P73,P74,P75,P76,P77,P78,P79,P80,P81,P82,P83,P84,P85,P86,P87,P88,P89,P90,P91,P92,P93,P94,P95,P96,P97,P98,P99,P100,P101,P102,P103,P104,P105,P106,P108,P109,P110,P111,P112,P113,P114,P115,P116,P117,P118,P119,P120,P121),
COLS(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48,P49,P50,P51,P52,P53,P54,P55,P56,P57,P58,P59,P60,P61,P62,P63,P64,P65,P66,P67,P68,P69,P70,P71,P72,P73,P74,P75,P76,P77,P78,P79,P80,P81,P82,P83,P84,P85,P86,P87,P88,P89,P90,P91,P92,P93,P94,P95,P96,P97,P98,P99,P100,P101,P102,P103,P104,P105,P106,P108,P109,P110,P111,P112,P113,P114,P115,P116,P117,P118,P119,P120,P121,P107)
TOKENS (TK-TRANTIME = @GETENV("TRANSACTION", "TIMESTAMP"), TK-CSN = @GETENV("TRANSACTION", "CSN"), TKN-RSN = @GETENV ("RECORD", "FILESEQNO"), TKN-RBA = @GETENV ("RECORD", "FILERBA"), TK-TIME = @GETENV ("RECORD", "TIMESTAMP"));

PUMP

USERID gg_admin@orcl, password gg_admin
RMTHOST <host>, MGRPORT 7809
RMTTRAIL /opt/oracle/product/11.2.0/dbhome_1/goldengate/dirdat/rmttrail/rt
PASSTHRU
TABLE dev.*;

Репликат

replicat rep
ASSUMETARGETDEFS
userid gg_admin@orcl, password gg_admin
ALLOWDUPTARGETMAP
INSERTMISSINGUPDATES
DISCARDFILE /opt/oracle/product/11.2.0/dbhome_1/goldengate/discard/discard.txt, PURGE
NOOVERRIDEDUPS
NOUPDATEDELETES
MAP dev.tabl, TARGET dev.tabl, INSERTALLRECORDS, KEYCOLS(p1), COLMAP (
P1=P1,
P2=P2,
P3=P3,
P4=P4,
P5=P5,
P6=P6,
P7=P7,
P8=P8,
P9=P9,
P10=P10,
P11=P11,
P12=P12,
P13=P13,
P14=P14,
P15=P15,
P16=P16,
P17=P17,
P18=P18,
P19=P19,
P20=P20,
P21=P21,
P22=P22,
P23=P23,
P24=P24,
P25=P25,
P26=P26,
P27=P27,
P28=P28,
P29=P29,
P30=P30,
P31=P31,
P32=P32,
P33=P33,
P34=P34,
P35=P35,
P36=P36,
P37=P37,
P38=P38,
P39=P39,
P40=P40,
P41=P41,
P42=P42,
P43=P43,
P44=P44,
P45=P45,
P46=P46,
P47=P47,
P48=P48,
P49=P49,
P50=P50,
P51=P51,
P52=P52,
P53=P53,
P54=P54,
P55=P55,
P56=P56,
P57=P57,
P58=P58,
P59=P59,
P60=P60,
P61=P61,
P62=P62,
P63=P63,
P64=P64,
P65=P65,
P66=P66,
P67=P67,
P68=P68,
P69=P69,
P70=P70,
P71=P71,
P72=P72,
P73=P73,
P74=P74,
P75=P75,
P76=P76,
P77=P77,
P78=P78,
P79=P79,
P80=P80,
P81=P81,
P82=P82,
P83=P83,
P84=P84,
P85=P85,
P86=P86,
P87=P87,
P88=P88,
P89=P89,
P90=P90,
P91=P91,
P92=P92,
P93=P93,
P94=P94,
P95=P95,
P96=P96,
P97=P97,
P98=P98,
P99=P99,
P100=P100,
P101=P101,
P102=P102,
P103=P103,
P104=P104,
P105=P105,
P106=P106,
P107=@CASE(@COLTEST(P107, MISSING), "1", "SPECIAL", "0", P107),
P108=P108,
P109=P109,
P110=P110,
P111=P111,
P112=P112,
P113=P113,
P114=P114,
P115=P115,
P116=P116,
P117=P117,
P118=P118,
P119=P119,
P120=P120,
P121=P121,
optype = @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U", "UPDATE", "U", "INSERT", "I", "DELETE", "D", @GETENV("GGHEADER", "OPTYPE")),
trantime = @token ("TK-TRANTIME"));


------------------------------------------------

И сами примеры

Первый запрос выполняется нормально. На приемнике полю с типом LONG (это p107) присваивается значение.

insert into dev.tabl
values
(1,
SYSDATE,
1,
SYSDATE,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
SYSDATE,
SYSDATE,
SYSDATE,
1,
SYSDATE,
SYSDATE,
SYSDATE,
SYSDATE,
1,
SYSDATE,
SYSDATE,
SYSDATE,
SYSDATE,
1,
1,
SYSDATE,
1,
SYSDATE,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1);

Далее второй запрос, где большим полям присваиваются максимальные значения. Значение для поля p107 остается прежним.
При репликации на приемнике полю p107 функция

P107=@CASE(@COLTEST(P107, MISSING), "1", "SPECIAL", "0", P107),

присвоит значение NULL!!! В логи никакой ошибки не записалось.

insert into dev.tabl
values (2,
SYSDATE,
1,
SYSDATE,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
1,
1,
1,
1,
1,
1,
1,
1,
1,
SYSDATE,
SYSDATE,
SYSDATE,
1,
SYSDATE,
SYSDATE,
SYSDATE,
SYSDATE,
1,
SYSDATE,
SYSDATE,
SYSDATE,
SYSDATE,
1,
1,
SYSDATE,
1,
SYSDATE,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1', --
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ', --
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ', --
1,
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ', --
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', --
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1',
1,
1,
1,
1,
1,
'example 1 example 1 example 1 ',
'example 1 example 1 example 1 example 1 example 1 example 1 1234',
'example 1 12345',
'example 1 12345');


И третий пример. Значение для поля P107 сократили до нескольких символах. Все остальные значения как во втором примере.
Этот запрос снова нормально работает.


insert into dev.tabl
values (3,
SYSDATE,
1,
SYSDATE,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
1,
1,
1,
1,
1,
1,
1,
1,
1,
SYSDATE,
SYSDATE,
SYSDATE,
1,
SYSDATE,
SYSDATE,
SYSDATE,
SYSDATE,
1,
SYSDATE,
SYSDATE,
SYSDATE,
SYSDATE,
1,
1,
SYSDATE,
1,
SYSDATE,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1', --
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ', --
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ', --
1,
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ', --
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
1,
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 ',
'aaaaaaa', -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1,
1,
1,
1,
'example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1 example 1',
1,
1,
1,
1,
1,
'example 1 example 1 example 1 ',
'example 1 example 1 example 1 example 1 example 1 example 1 1234',
'example 1 12345',
'example 1 12345');


Причем, если

P107=@CASE(@COLTEST(P107, MISSING), "1", "SPECIAL", "0", P107)

заменить на P107= P107, то все три примера работают. Т.е. дело не в trail файле, а именно в функциях модификации полей.
Даже просто case во втором примере не работает.

И еще возможно важно

С другими полями функции модификации работают, именно с полем типа LONG такой косяк.
Возможно, это потому что они все добавлены в Supplemental log group.

Вот вроде все, надеюсь на помощь))
24 окт 13, 02:03    [15023789]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
stdio
Member

Откуда:
Сообщений: 4524
как я понимаю, ТС не успел купить техническую поддержку.
24 окт 13, 10:17    [15024403]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
Эм... сейчас пробую воспроизвести, но навскидку, как минимум, ASSUMETARGETDEFS использовать нельзя. Нужно SOURCEDEFS и, соответсвенно, генерировать def-файл на источнике.
24 окт 13, 18:04    [15028112]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
zebzeb
Member

Откуда:
Сообщений: 95
Почему ASSUMETARGETDEFS нельзя использовать? Таблицы на источнике и приемнике идентичны же.
24 окт 13, 18:12    [15028147]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
Почему одинаковые? А поля trantime, optype? Я у себя протестировал (правда на GG 12c + Ora 12c). У меня заработало с SOURCEDEFS.
Еще я:
1) выкинул TOKENS из Extract.
2) на приемнике вот так:
replicat rep

setenv (ORACLE_SID=orcl6)
setenv (ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1)
USERID c##ggadmin@gg6:1521/pdb1.local, PASSWORD oracle

sourcedefs ./dirdef/ggtest.defs
--assumetargetdefs

DISCARDFILE ./dirrpt/discard.txt, PURGE

INSERTMISSINGUPDATES
NOOVERRIDEDUPS
NOUPDATEDELETES

MAP pdb1.ggtest.tabl, TARGET ggtest.tabl, INSERTALLRECORDS, KEYCOLS(p1),
COLMAP (
USEDEFAULTS,
P107=@CASE(@COLTEST(P107, MISSING), '1', 'SPECIAL', '0', P107),
optype = @CASE(@GETENV('GGHEADER', 'OPTYPE'), 'SQL COMPUPDATE', 'U', 'PK UPDATE', 'U', 'UPDATE', 'U', 'INSERT', 'I', 'DELETE', 'D', @GETENV('GGHEADER', 'OPTYPE')),
trantime = @getenv ("GGHEADER","COMMITTIMESTAMP"));
24 окт 13, 18:55    [15028291]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
Да, еще supplemental group добавляем так (вряд ли это влияет, конечно):
ALTER TABLE ggtest.tabl ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
24 окт 13, 19:13    [15028358]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
zebzeb
Member

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

Спасибо!

А если я оставлю TOKENS в экстракте, они мне нужны для других таблиц, это повлияет на LONG?
24 окт 13, 19:23    [15028394]     Ответить | Цитировать Сообщить модератору
 Re: GoldenGate. Имеет ли значение общая длина строки при использовании COLTEST на поле LONG  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
zebzeb
Alexander,

Спасибо!

А если я оставлю TOKENS в экстракте, они мне нужны для других таблиц, это повлияет на LONG?
Не знаю. Они не должны влияться.

Просто то, что вы заталкиваете в TOKEN и так переносится GG в служебных полях. Например, время COMMIT можно получить без токенов (я выше писал как). Вот это я тоже не очень понимаю @GETENV ("RECORD", "TIMESTAMP")) - у вас ведь все равно есть FILERBA+FILESEQNO для упорядочивания, а TIMESTAMP все равно может оказаться неуникальным. Ну это так лирика
24 окт 13, 20:00    [15028510]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить