对同义词的操作

Oracle 电子商务适配器允许你对同义词执行操作。 同义词是数据库对象的别名或友好名称, (表、视图、存储过程、函数和包) 。 有关 Oracle 中的同义词详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=138058

使用同义词的优点

同义词在下列情况下非常有用:

  • 使用不同的架构:如果使用不同的架构,并且需要跨架构访问对象,必须使用不同的 SQL 语句来访问这些对象。 你可以为架构中的对象创建同义词,并使用 SQL 语句中的同义词访问该对象。 如果需要访问不同架构中的基础对象,请修改同义词的定义,以指向其他架构中的对象。 因此,基于同义词的应用程序将继续正常运行,而无需在 SQL 语句中进行修改。

    例如,假设测试和生产环境有两个相同的架构:"Test"和"Prod"。 若要访问"测试"架构中名为"Employee Test.EmployeeEmployee "的表, (如果"Test"是) 语句中的默认SQL架构。 如果要在生产架构中使用"Employee Prod.EmployeeEmployee "表,现在必须使用 或 (在 SQL 语句中将默认架构更改为) "prod"。 若要解决此问题,可以创建"Test.Employee"表的同义词 (例如"EMP") ,然后在 SQL 语句中使用它。 每当需要对"Prod.Employee"表执行运算时,请修改"EMP"同义词的定义,以指向"Prod.Employee"表。 这可确保你不需要修改 SQL 语句,以对不同架构中的 对象执行运算。

  • 基础对象中的更改:同义词使你可以免受正在其上执行操作的基础对象的名称或位置的任何更改的影响。 可以修改同义词定义,以适应基础对象的名称或位置的任何更改。

    例如,假设你正在使用其中一个存储过程中的表。 现在,如果更改表名或将表移动到其他位置,则存储过程将停止工作。 若要处理这种情况,可以在存储过程中对表使用同义词,如果表的名称或位置发生变化,则更新同义词定义。

  • 简化且安全的访问:在分布式环境中,必须使用架构名称和对象名称,以确保访问正确的对象。 此外,还必须确保用户对目标对象具有所需的权限。 为了简化此操作,可以通过创建具有对象的完整限定路径的同义词来为对象分配简单名称,然后授予对同义词的适当权限。

在适配器中处理同义词

Oracle 电子商务适配器在 Oracle 中公开以下项的同义词:

  • 视图

  • 存储过程

  • 函数

  • 在"使用适配器服务外接程序"、"添加适配器元数据向导"和"添加适配器服务引用插件"中,每个项目的同义词与相应的基础项目一起公开。 例如,基于架构的视图下的"表"节点将显示表的所有同义词以及架构中的数据库表,基于架构的视图下的"视图"节点将显示视图的所有同义词以及架构中的数据库视图等。

  • 对于在表和视图上创建的同义词,将分别对基础表和视图公开相同的操作。 例如,如果基础表和视图包含 LOB 列,则这些表和视图的同义词还将公开表同义词的 Read_<LOBColName> 和 Update_<LOBColName> 操作以及视图同义词的 Read_LOBColName> 操作<。

  • 对于在存储过程、函数和包上创建的同义词,同义词作为操作以及架构中相应的基础存储过程、函数和包公开。

注意

Oracle 电子商务适配器仅支持本地同义词。 这意味着,面向本地服务器上项目的适配器仅支持这些同义词。

此外,同义词的消息操作与基础对象相同,但执行该操作的项目名称除外。 例如,对 SCOTT 架构中的表 执行 Select 操作的消息操作为: Tables/Select/SCOTT/[TABLE_NAME]。 如果要对 SCOTT 架构中同一表的同义词执行 Select 操作,则消息操作将为: Tables/Select/SCOTT/[SYNONYM_NAME]

对适配器中的同义词调用操作时,适配器将调用 Oracle 数据库中的同义词以执行该操作。 但是,适配器使用同义词定义中的基础对象名称来提取元数据。

同义词可用于正常的出站操作、复合操作和轮询。

注意

可以像搜索其他对象一样,在"使用适配器服务外接程序"或"添加适配器服务引用插件"中搜索同义词。 但是,无法从跳过级别节点搜索同义词包内的过程,就像对包内的过程进行搜索一样。 有关在适配器中搜索操作的信息,请参阅浏览、搜索和获取使用适配器SQL操作SQL元数据

另请参阅

可以使用适配器执行哪些操作?