Document Type | Troubleshooting
Category | Interface/Integration
Applicable Product Versions | 6FS06, 6FS07, 7FS02
Document Number | TIITS007
Issue
A SIGSEGV occurs when executing an Insert Into statement with Long type using DBLink.
SQL> INSERT INTO [REMOTE LONG TABLE 1] SELECT * FROM [REMOTE LONG TABLE 2]
The issue occurs regardless of whether DBLink 1 or 2 is Oracle or Tibero.
Cause
Remote to Remote operations with Long type were not considered, which causes the SIGSEGV.
Solutions
Apply the patch to resolve the issue. (Applied Patch: FS07PS_337669a)
CautionApply the patch through technical support provided by Tmax Tibero.
-- Test scenario after patch application
# Create Tibero to Tibero dblink
create database link tlink01 connect to tibero identified by 'tmax' using 'tibero';
create database link tlink02 connect to tibero identified by 'tmax' using 'tibero';
# Create Tibero to Oracle dblink
create database link olink01 connect to lkh identified by 'tibero' using 'gw_orcl19';
create database link olink02 connect to lkh identified by 'tibero' using 'gw_orcl19';
[Execute on both Oracle and Tibero]
create table t1_long (c1 varchar2(10), c2 long);
create table t2_long (c1 varchar2(10), c2 long);
insert into t2_long values('a', 'a');
insert into t1_long values('a', 'a');
create table t1_clob (c1 varchar2(10), c2 clob);
create table t2_clob (c1 varchar2(10), c2 clob);
insert into t2_clob values('a', 'a');
insert into t1_clob values('a', 'a');
commit;
# Insert test
1. Tibero to Tibero (Remote to Remote)
insert into t1_long@tlink01 select * from t2_long@tlink02;
2. Oracle to Oracle (Remote to Remote)
insert into t1_long@olink01 select * from t2_long@tlink01;
3. Cross-database remote to remote
insert into t1_long@tlink01 select * from t2_long@olink01;
insert into t1_long@olink01 select * from t2_long@tlink01;
# Update test
1. Tibero to Tibero (Remote to Remote)
update t1_long@tlink01 t1 set (c1, c2) = (select c1, c2 from t2_long@tlink02);
2. Oracle to Oracle (Remote to Remote)
update t1_long@olink01 t1 set (c1, c2) = (select c1, c2 from t2_long);
3. Cross-Database Remote to Remote
update t1_long@tlink01 t1 set (c1, c2) = (select c1, c2 from t2_long@olink01);
update t1_long@olink01 t1 set (c1, c2) = (select c1, c2 from t2_long@tlink01);
-- All should execute normally without signals and output "1 row inserted."NoteIf the patch is not applied, the issue can be mitigated by using Lob instead of Long type.