问题标签 [hana-sql-script]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
417 浏览

hana - 通过 SQL 插入 CSV Blob 数据

我正在尝试探索将非常大(1000 万行)CSV 数据从文件插入 SAP HANA 数据库(1.12 版)的不同方法。

到目前为止,我们已经尝试了很多事情(有些事情比其他事情更成功),现在我陷入了以下困境:

在 javascripts 中管理数据有其问题(如 js 引擎冻结),现在我已经设法使用 blob 数据类型上传和插入它。我知道 SAP Hana 中的“从 CSV 文件导入”SQL 函数,我想知道是否可以将它与保存在我们数据库中的 blob 一起使用。

提前感谢您的时间和帮助

0 投票
1 回答
1881 浏览

sql - 动态 SQL 语法错误 SQLScript SAP HANA

我在存储过程中有动态 SQL。

该过程采用三个参数:

  • 暗部名称
  • 列名
  • 上传 ID

这是程序:

和错误:

SAP DBTech JDBC:[257]:sql 语法错误:“Schema”。“DeletefromDIM”:第 15 列第 1 行(位置 520):[257](范围 3)sql 语法错误异常:sql 语法错误:“附近的语法不正确” -”:第 3 行第 41 列(在 pos 214)

当我在控制台中运行此 SQL 并替换我的输入时,它工作正常:

该错误实际上没有意义,因为该位置不仅没有“-”,而且整个语句中也没有破折号。

0 投票
2 回答
194 浏览

abap - 如何将单列表传递给 AMDP 方法?

我需要将带有单列的表传递给引发错误的 AMDP 方法,其他参数正常:

我应该如何定义它?

0 投票
1 回答
764 浏览

inner-join - 带有 INNER JOIN 的 HANA SQL 脚本 INSERT INTO 无法插入值

我对 SQL 很陌生,希望你能帮助我解决我的问题。

我有一个名为、、和Order_Status_Form_3列的表。Order_ID (KEY)Customer_IDCustomer_Unique_IDStatus(KEY)Date

表格已填满,但Customer_Unique_ID列除外。

要填写此列,我需要引用链接到 的Customer表,因此正确的 ID 覆盖正确的位置。当in等于表中的 the 时,应将给定的值插入到 in 的列中。Customer_IDCustomer_Unique_IDCustomer_IDOrder_Status_Form_3Customer_IDCustomerCustomer_Unique_IDCustomer_Unique_IDOrder_Status_Form_3

我尝试将 aINSERT INTO与 a结合使用SELECTINNER JOIN但收到一条错误消息:

“无法插入 NULL 或更新为 NULL:Order_ID”。

我猜程序不清楚在哪里插入找到的值并尝试插入所有列。我搜索了类似的问题,但找不到针对我的具体问题的任何令人满意的答案。

这是我使用的代码:

WHERE我试图通过在末尾附加 a 来指定插入值的位置,但收到了相同的错误。

有谁知道如何解决这个问题并且可以告诉我我的错误在哪里?

提前感谢您阅读这个冗长的问题并留下答案。

编辑

我尝试使用update,但似乎我无法正确使用。

Update "HXE_109"."Order_Status_Form_3" Set "Customer_Unique_ID" = (Select customer."customer_unique_id" From "HXE_109"."Customer" As customer Inner Join "HXE_109"."Order_Status_Form_3" As OrderStatus3 On OrderStatus3."Customer_ID" = customer."customer_id") 现在我收到以下错误:

单行查询返回多于一行

我需要在这里使用Where条件吗?

对不起我的愚蠢。:(

0 投票
1 回答
49 浏览

sql - 通过比较度量或循环与游标进行 SQL 连接?

为了验证交付是否按时完成,我需要根据所需数量 (ReqQty) 和交付数量 (DlvQty) 之间的比较,将交付文档与采购订单计划行 (SchLin) 匹配。

Delivery Docs 有对 PO 和 POItm 的引用,但没有对 SchLin 的引用。将交付单据分配到计划行后,我可以将交付增量 (DlvDelta) 计算为与需求 (ReqDate) 相比提前或延迟交付的天数。

两个基表的示例如下:

计划行

交货单

重要提示:计划行和交货应具有相同的 PO 和 POItm。链接的另一个逻辑是对 DlvQty 求和,直到我们达到(或超过)ReqQty。然后将这些交付链接到计划行。后续交货用于以下计划行。一个交付应该只匹配一个计划行。

比较 ReqQty 和 DlvQty 后,分配应导致以下结果:

结果

到目前为止,我已经通过使用游标的循环来完成此操作,但性能相当缓慢。

SQL(脚本)中是否有另一种方法,例如通过比较措施来实现相同结果的连接?

问候,

埃里克

0 投票
1 回答
333 浏览

sap - 传递 CLOB TO Sys 过程 SAP HANA

如何在不出错的情况下将 clob 传递给系统 rpocedure?

我试图通过

0 投票
1 回答
1710 浏览

stored-procedures - 带有文本类型的 SAP HANA 存储过程可选输出参数

假设我已经在 SAP HANA 数据库中创建了存储过程,并且想要具有文本类型的可选 out 参数,例如error details。正如我所读到的那样,我应该使用一些默认值,因此我这样做了:

不幸的是,构建失败并出现以下错误:

OUT 和 IN OUT 参数可能没有默认表达式

所以,我决定尝试使用null,但它以同样的方式失败了。后来我将类型更改为整数只是为了尝试,它再次以完全相同的方式失败。

同时这有效:

但这感觉像是一个巨大的矫枉过正——制作一个只返回一个文本值的表格。

您对如何添加可选输出参数有任何建议吗?

0 投票
1 回答
477 浏览

database - 增量合并后增量中的内存大小

在我的 HANA 数据库上,我对执行了许多 INSERT 语句的几个表执行了增量合并

我看到合并命令成功完成

另一方面,当我查询 M_CS_TABLES 表时,我看到 MEMORY_SIZE_IN_DELTA 大于零,并且与 MEMORY_SIZE_IN_MAIN 相比百分比很高。事实上,我期待看到 0 或更少的百分比。

您能帮我理解增量问题中的增量合并和内存大小吗?

我在 HANA 数据库的架构中创建了示例列表,并使用 INSERT 命令填充了数据。然后我执行了以下命令

要查询列表的合并统计信息,

尽管表的大小非常小,但我预计表的增量或行存储部分接近于零

此外,所有表的 RAW_RECORD_COUNT_IN_DELTA 都是 0,因为我理解这意味着在 delta 中没有等待合并的记录。

在此处输入图像描述

对于基于列的统计信息,我执行

输出如下

在此处输入图像描述

0 投票
1 回答
944 浏览

hana - SAP HANA 与 Try_Cast 等效的逻辑

在 SQL Server 中,您有一个名为 Try_Cast 的函数。 https://docs.microsoft.com/en-us/sql/t-sql/functions/try-cast-transact-sql?view=sql-server-2017

我喜欢您可以将其放入 Case 语句中:

我需要在 SAP HANA 中具有完全相同的逻辑。

有任何想法吗?

0 投票
1 回答
43 浏览

sql - 识别缺失的行并在 SQL 中计算它们

我有以下数据。需要识别缺失的行并计算平均值

LineNo Field1 Field2 年平均
1 法国巴黎 2019 100 
2 法国巴黎 2017 300 
3 法国尼斯 2018 200 
4 意大利 罗马 2019 50 
5 意大利 罗马 2018 500 
6 意大利 罗马 2017 250 

需要计算所有年份(2019、2018、2017)的平均值。

因此,对于法国和巴黎的组合 - 缺少 2018 年。
所以对于法国和尼斯 - 缺少 2019 年和 2017 年。对于意大利和罗马的组合,我们有所有记录。

因此,对于缺少的组合,需要计算如下平均值(公式,在所有情况下总和/3,无论存在年数)

最终数据如下所示。

LineNo Field1 Field2 Year Value
1 France Paris 2019 100 
2 France Paris 2017 300 
3 France Nice 2017 200 
4 Italy Rome 2019 50 
5 Italy Rome 2018 500 
6 Italy Rome 2017 250 
*7 France Paris 2018 133 
*8 France Nice 2018 66 
*9 France不错 2019 66 

7,8,9线是新的