问题标签 [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.
hana - 通过 SQL 插入 CSV Blob 数据
我正在尝试探索将非常大(1000 万行)CSV 数据从文件插入 SAP HANA 数据库(1.12 版)的不同方法。
到目前为止,我们已经尝试了很多事情(有些事情比其他事情更成功),现在我陷入了以下困境:
在 javascripts 中管理数据有其问题(如 js 引擎冻结),现在我已经设法使用 blob 数据类型上传和插入它。我知道 SAP Hana 中的“从 CSV 文件导入”SQL 函数,我想知道是否可以将它与保存在我们数据库中的 blob 一起使用。
提前感谢您的时间和帮助
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 并替换我的输入时,它工作正常:
该错误实际上没有意义,因为该位置不仅没有“-”,而且整个语句中也没有破折号。
abap - 如何将单列表传递给 AMDP 方法?
我需要将带有单列的表传递给引发错误的 AMDP 方法,其他参数正常:
我应该如何定义它?
inner-join - 带有 INNER JOIN 的 HANA SQL 脚本 INSERT INTO 无法插入值
我对 SQL 很陌生,希望你能帮助我解决我的问题。
我有一个名为、、和Order_Status_Form_3
列的表。Order_ID (KEY)
Customer_ID
Customer_Unique_ID
Status(KEY)
Date
表格已填满,但Customer_Unique_ID
列除外。
要填写此列,我需要引用链接到 的Customer
表,因此正确的 ID 覆盖正确的位置。当in等于表中的 the 时,应将给定的值插入到 in 的列中。Customer_ID
Customer_Unique_ID
Customer_ID
Order_Status_Form_3
Customer_ID
Customer
Customer_Unique_ID
Customer_Unique_ID
Order_Status_Form_3
我尝试将 aINSERT INTO
与 a结合使用SELECT
,INNER 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
条件吗?
对不起我的愚蠢。:(
sql - 通过比较度量或循环与游标进行 SQL 连接?
为了验证交付是否按时完成,我需要根据所需数量 (ReqQty) 和交付数量 (DlvQty) 之间的比较,将交付文档与采购订单计划行 (SchLin) 匹配。
Delivery Docs 有对 PO 和 POItm 的引用,但没有对 SchLin 的引用。将交付单据分配到计划行后,我可以将交付增量 (DlvDelta) 计算为与需求 (ReqDate) 相比提前或延迟交付的天数。
两个基表的示例如下:
计划行
交货单
重要提示:计划行和交货应具有相同的 PO 和 POItm。链接的另一个逻辑是对 DlvQty 求和,直到我们达到(或超过)ReqQty。然后将这些交付链接到计划行。后续交货用于以下计划行。一个交付应该只匹配一个计划行。
比较 ReqQty 和 DlvQty 后,分配应导致以下结果:
结果
到目前为止,我已经通过使用游标的循环来完成此操作,但性能相当缓慢。
SQL(脚本)中是否有另一种方法,例如通过比较措施来实现相同结果的连接?
问候,
埃里克
sap - 传递 CLOB TO Sys 过程 SAP HANA
如何在不出错的情况下将 clob 传递给系统 rpocedure?
我试图通过
stored-procedures - 带有文本类型的 SAP HANA 存储过程可选输出参数
假设我已经在 SAP HANA 数据库中创建了存储过程,并且想要具有文本类型的可选 out 参数,例如error details。正如我所读到的那样,我应该使用一些默认值,因此我这样做了:
不幸的是,构建失败并出现以下错误:
OUT 和 IN OUT 参数可能没有默认表达式
所以,我决定尝试使用null,但它以同样的方式失败了。后来我将类型更改为整数只是为了尝试,它再次以完全相同的方式失败。
同时这有效:
但这感觉像是一个巨大的矫枉过正——制作一个只返回一个文本值的表格。
您对如何添加可选输出参数有任何建议吗?
database - 增量合并后增量中的内存大小
在我的 HANA 数据库上,我对执行了许多 INSERT 语句的几个表执行了增量合并
我看到合并命令成功完成
另一方面,当我查询 M_CS_TABLES 表时,我看到 MEMORY_SIZE_IN_DELTA 大于零,并且与 MEMORY_SIZE_IN_MAIN 相比百分比很高。事实上,我期待看到 0 或更少的百分比。
您能帮我理解增量问题中的增量合并和内存大小吗?
我在 HANA 数据库的架构中创建了示例列表,并使用 INSERT 命令填充了数据。然后我执行了以下命令
要查询列表的合并统计信息,
尽管表的大小非常小,但我预计表的增量或行存储部分接近于零
此外,所有表的 RAW_RECORD_COUNT_IN_DELTA 都是 0,因为我理解这意味着在 delta 中没有等待合并的记录。
对于基于列的统计信息,我执行
输出如下
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 中具有完全相同的逻辑。
有任何想法吗?
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线是新的