GaussDB只支持普通的SYNONYM同义词,不支持PUBLIC同义词。UGO会将Oracle中的PUBLIC同义词转换为GaussDB中public Schema下的普通同义词对象,从而实现与Oracle中等效的功能,可参见表1。
当您的数据库中不同用户拥有同名的public同义词时,该方案会将两个用户的同义词对象均转换到public Schema下,造成同义词对象冲突,所以需要对不同用户中同名的同义词完成本地改造后再进行迁移,可参考下表表2。
表1 语法转换1 Oracle源库中sql语句 | GaussDB目标库转化后的sql语句 |
|---|
CREATE PUBLIC SYNONYM u1.syn FOR u1.object1; | CREATE SYNONYM public.syn FOR u1.object; |
表2 语法转换2 Oracle源库中sql语句 | GaussDB目标库转化后的sql语句 | 是否存在同义词冲突 |
|---|
CREATE PUBLIC SYNONYM u1.syn FOR u1.object1; | CREATE SYNONYM public.syn FOR u1.object1; | 否 |
CREATE PUBLIC SYNONYM u2.syn FOR u1.object2; | CREATE SYNONYM public.syn FOR u2.object2; | 是 |