Stored procedures 当您有多个模式时,如何在存储过程中使用模式映射?

Stored procedures 当您有多个模式时,如何在存储过程中使用模式映射?,stored-procedures,hana,hana-sql-script,Stored Procedures,Hana,Hana Sql Script,我在HANA数据库中有一个存储过程,需要在其中连接来自不同模式的两个表。这些模式在开发、登台和生产系统中的命名不同 在这种情况下,显而易见的解决办法是使用。但不幸的是,模式映射似乎只适用于存储过程的默认模式。尝试在存储过程中引用创作架构时,例如,在上的JOIN authoring_schema.SOME_表。。。您收到错误消息“架构名称无效”。因此,似乎我只能对其中一个表使用模式映射,而不能同时对这两个表使用模式映射 我知道我可以通过查询表_SYS_BI.M_schema_MAPPING来读取存

我在HANA数据库中有一个存储过程,需要在其中连接来自不同模式的两个表。这些模式在开发、登台和生产系统中的命名不同

在这种情况下,显而易见的解决办法是使用。但不幸的是,模式映射似乎只适用于存储过程的默认模式。尝试在存储过程中引用创作架构时,例如,在上的JOIN authoring_schema.SOME_表。。。您收到错误消息“架构名称无效”。因此,似乎我只能对其中一个表使用模式映射,而不能同时对这两个表使用模式映射


我知道我可以通过查询表_SYS_BI.M_schema_MAPPING来读取存储过程中的模式映射,但是当我在变量中有模式名称时,我无法找到如何从模式中进行查询。

我通过一种解决方法解决了这一问题,我对此并不完全满意,但目前它仍然有效

我创建了第二个存储过程,第二个模式作为默认模式。此过程只选择第二个数据库表的内容

第一个存储过程调用第二个存储过程将数据加载到本地表变量中,然后在第一个数据库表和表变量之间执行联接


这相当好,因为第二个表目前只有16行,不太可能超过100行。但是我不想用一个更大的表来做这件事。

我会尝试通过使用.hdbsynom定义两个同义词来绕过这个限制

有关如何使用.hdbsynonym创建设计时同义词的详细信息,请检查和

在这里,您还可以找到关于模式映射如何与hdbsynonym一起工作的描述

有关一般同义词的详细信息,请参见