【发布时间】:2021-07-05 20:38:15
【问题描述】:
我在通过变量从计算视图中读取时遇到了一个有趣的问题...代码如下:
do begin
declare lv_ww nvarchar(6);
declare lv_quarter nvarchar(6);
select "WORKWEEK","QUARTER" INTO lv_ww,lv_quarter from "ABC"."TABLE1";
select count(*) from "_SYS_BIC"."CID" (PLACEHOLDER."IP_SNAPSHOTWW" => :lv_ww,PLACEHOLDER."IP_QUARTER" => :lv_quarter);
end;
我在 select count(*) 行中遇到列存储错误、搜索表错误、计划运算符失败。所以基本上是内存不足的问题,因为它占用了超过 15 GB 的内存。
现在我何时将硬编码 lv_ww = '202114' 和 lv_quarter = '2021Q2' 的值
do begin
declare lv_ww nvarchar(6) default '202114';
declare lv_quarter nvarchar(6) default '2021Q2';
select count(*) from "_SYS_BIC"."CID" (PLACEHOLDER."IP_SNAPSHOTWW" => :lv_ww,PLACEHOLDER."IP_QUARTER" => :lv_quarter);
end;
它运行得非常好,只占用 0.012 GB。
注意 - 从 TABLE1 计算时 lv_ww 和 lv_quarter 非常好,并且给我们的值为 (lv_ww = 202114 和 lv_quarter = 2021Q2)
如果您需要任何其他详细信息,请告诉我,请告知我任何解决方案。
【问题讨论】:
-
没有解决方案,这在很大程度上取决于您的视图设计。您需要使用 PlanViz 来查看传递到计算视图的确切参数,并检查它们是否应用在适当的位置和传递的值。在 HANA Studio 中:鼠标右键 -> 解释 -> 可视化。然后检查节点是否按预期过滤。
标签: hana hana-sql-script hana-studio