HANA 2.0 SP04创建虚拟表

2020-08-24 11:35发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


在HANA 2.0(SP04)上,我想添加在远程源DB表(另一个HANA DB 1.x,未知SP版本)上创建的虚拟表:

在" HANA_QAS"上创建虚拟表" MYUSER"。" BKPF_TEST"(" MANDT" NVARCHAR(3)NOT NULL)。" BKPF" 

我收到错误消息(HANA Studio 2019-12):

  • 无法在358 ms 68 µs内在" HANA_DEV"。" BKPF"执行"创建虚拟表" MYUSER"。" BKPF_TEST"(" MANDT" NVARCHAR(2)NOT NULL)。
  • SAP DBTech JDBC:[333]:不允许的列

当我尝试在不指定列的情况下创建它时:

在" HANA_DEV"上创建虚拟表" MYUSER"。" BKPF_TEST"。" BKPF" 

我遇到另一个错误:

  • 在180毫秒397 µs内无法执行"创建虚拟表" CPS"。" BKPF_TEST"在" HANA_DEV"。" BKPF""。
  • SAP DBTech JDBC:[403]:内部错误:无法创建虚拟表:sql语法错误:" ..."附近的语法不正确:第1列col 4036(在pos 4036处)

我可以添加表格的唯一方式是在HANA Studio中"单击"。 目录-> MYUSER模式->表->新的虚拟表...浏览远程对象并选择具体表。

由于我需要创建数十个VT(并且在每个新创建的DEV/QAS/PRO系统上),因此我寻求一些基于SQL脚本的可行解决方案。 也许问题是HANA DB的版本不同...?

感谢任何提示!

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


在HANA 2.0(SP04)上,我想添加在远程源DB表(另一个HANA DB 1.x,未知SP版本)上创建的虚拟表:

在" HANA_QAS"上创建虚拟表" MYUSER"。" BKPF_TEST"(" MANDT" NVARCHAR(3)NOT NULL)。" BKPF" 

我收到错误消息(HANA Studio 2019-12):

  • 无法在358 ms 68 µs内在" HANA_DEV"。" BKPF"执行"创建虚拟表" MYUSER"。" BKPF_TEST"(" MANDT" NVARCHAR(2)NOT NULL)。
  • SAP DBTech JDBC:[333]:不允许的列

当我尝试在不指定列的情况下创建它时:

在" HANA_DEV"上创建虚拟表" MYUSER"。" BKPF_TEST"。" BKPF" 

我遇到另一个错误:

  • 在180毫秒397 µs内无法执行"创建虚拟表" CPS"。" BKPF_TEST"在" HANA_DEV"。" BKPF""。
  • SAP DBTech JDBC:[403]:内部错误:无法创建虚拟表:sql语法错误:" ..."附近的语法不正确:第1列col 4036(在pos 4036处)

我可以添加表格的唯一方式是在HANA Studio中"单击"。 目录-> MYUSER模式->表->新的虚拟表...浏览远程对象并选择具体表。

由于我需要创建数十个VT(并且在每个新创建的DEV/QAS/PRO系统上),因此我寻求一些基于SQL脚本的可行解决方案。 也许问题是HANA DB的版本不同...?

感谢任何提示!

付费偷看设置
发送
2条回答
bbpeas
1楼-- · 2020-08-24 12:15

您的第一次尝试:仅当您要在远程系统上创建表时,才可以定义列。

您的第二次尝试:您仅使用架构和表名来定义远程对象, 但是远程源名称和数据库名称也是必需的。 例如

 ... AT" MY_REMOTE_SOURE"。" MY_DBNAME"。" HANA_DEV_BKPF"; 

请检查文档

callcenter油条
2楼-- · 2020-08-24 12:13

感谢您的回复! 含税 还有您的暗示,我认识到在较旧的系统上生成的脚本无法在较新版本的HANA DB上运行,或者导出虚拟表根本无法正常工作。

我在HANA 1.0(含)上导出了架构结构(无数据)。 VT,并尝试在HANA 2.0上导入。 在导出时会生成用于创建具有显式列定义的VT的SQL命令,但不能用于导入目的。 同样,远程对象的规范在导出时效果不佳,因为生成了以下脚本:

创建虚拟表" SCHEMA_ON_LOCAL"。" VIRTUAL_TABLE_NAME" ..
 .. AT" REMOTE_SOURCE"。"?"。" SCHEMA_ON_LOCAL"。" VIRTUAL_TABLE_NAME_LOCAL"。

但是,远程源对象的唯一有效定义是:

创建虚拟表" SCHEMA_ON_LOCAL"。" VIRTUAL_TABLE_NAME" ..
 .. AT" REMOTE_SOURCE"。"?"。" REM_SRC_USER_SCHEMA_NAME"。" TABLE_NAME_ON_REMOTE_SOURCE"。

因此,导出命令没有"绑定"到远程源表名称,它在本地以后缀" _LOCAL"生成" VIRTUAL_TABLE_NAME",类似于模式名称-它不使用远程名称,而是从本地使用。 以此知识,我可以编辑在导出时生成的SQL命令。 他们现在正在完全致力于导入。

一周热门 更多>