View Issue Details

IDProjectCategoryView StatusLast Update
0004364SymmetricDSBugpublic2022-08-11 18:45
Reporterjohnmaccain Assigned Toelong  
Priorityhigh 
Status closedResolutionno change required 
Product Version3.11.7 
Summary0004364: Comma in table name
DescriptionWhen creating a trigger on a table containing a comma (for instance "Test,Table") the MsSqlDdlReader is trying to add a trigger on ALL tables of the database.

Soluce to create the trigger: Escape the comma by inserting a second comma -> Test,,Table
This solution works to add the trigger, but then it fails after :

2020-04-24 09:49:49,507 ERROR [node-nav] [AcknowledgeService] [qtp124058278-14] The outgoing batch 010-920 failed: Could not find the target table 'dbo.Table,Test'
Remark: "dbo.Table,Test" is the source table

use_source_catalog_schema is enabled in the router, but if I specify the target_schema_name and target_table_name in router (real target schema and table) it works for the routing.

Then, the issue (my main issue) is with the table_transform. They are not applied (EXTRACT or LOAD), with or without the comma escaping in table name.

Thanks for your help !
Steps To ReproduceSource: SQL Server with a table name: Test,Table
Target: PostgreSQL with a table name: TestTablePosgres

Trigger:
  source_schema_name: dbo
  source_table_name: Table,,Test

Router:
  target_schema_name: public
  target_table_name: TableTestPos

Transform Table:
  source_schema_name: dbo
  source_table_name: Table,,Test (or Table,Test)
  target_schema_name: public
  target_table_name: TableTestPos
Additional InformationAll other tables and parameters are well configured (transform column, trigger router, channel,...)
Tagsrouting, transformation, trigger

Activities

elong

2022-08-11 18:45

developer   ~0002159

The sym_trigger.source_table_name field supports multiple tables separated by commas, while sym_transform_table.source_table_name allows only one table. Since commas have special meaning to sym_trigger.source_table_name, you put two commas in a row to get one comma into a table name. Commas are used as they are in sym_transform_table.source_table_name, so only use one comma there.

sym_trigger.source_table_name = Test,,Table
sym_transform_table.source_table_name = Test,Table


You need two commas in sym_trigger.source_table_name because it allows listing of multiple tables separated by commas. You only need one comma in sym_transform_table.source_table_name because that field doesn't allow multiple tables. Test,,Table in the sym_trigger

Issue History

Date Modified Username Field Change
2020-04-24 08:14 johnmaccain New Issue
2020-04-24 08:14 johnmaccain Tag Attached: routing
2020-04-24 08:14 johnmaccain Tag Attached: transformation
2020-04-24 08:14 johnmaccain Tag Attached: trigger
2022-08-11 18:45 elong Note Added: 0002159
2022-08-11 18:45 elong Assigned To => elong
2022-08-11 18:45 elong Status new => closed
2022-08-11 18:45 elong Resolution open => no change required