我们可以将参数传递给SAP HANA中的.sql文件吗?

时间:2014-11-19 05:39:02

标签: database sap hana

我想知道,我们可以将参数传递给sql文件。如果是,那么如何

请帮忙。

3 个答案:

答案 0 :(得分:0)

不,没有这方面的功能。

答案 1 :(得分:0)

比方说,我们有一个sql文件(test.sql),其中包含两个参数的简单选择-param1和param2。参数名称应以&开头。

echo "select '&param1' param1, '&param2' param2 from dummy;" > test.sql

现在让我们使用HANA客户端hdbsql传递一些参数。使用-V选项,后跟参数名称,等号和参数值。如果该值包含空格,则应将其引号如下所示:

hdbsql ... -V param1=value1 -V "param2='another value'" -I test.sql

结果是:

PARAM1,PARAM2
"value1","another value"

答案 2 :(得分:0)

另一个例子:

z:\temp\hana_query.sql 文件内容:

SELECT 
"HANAOTIF"."CD_PERIOD" AS "CD_PERIOD",
"HANAOTIF"."CD_ORDER" AS "CD_ORDER",
"HANAOTIF"."CD_ORDER_ITEM" AS "CD_ORDER_ITEM",
"HANAOTIF"."CD_ORDER_TYPE" AS "CD_ORDER_TYPE",
"HANAOTIF"."CD_ORDER_ITEM_CAT" AS "CD_ORDER_ITEM_CAT"
FROM "mycompany.maestro.master.dashboarding::STAR_OTIF" "HANAOTIF"
WHERE "HANAOTIF"."CD_PERIOD" = &period

运行多个调用的 powershell 脚本调用异步将值从 For-Each 之前的列表传递到 -ArgumentList 使用 $_

$cmd={
param($yearmonth)
D:\Applications\sap\hdbclient\hdbsql.exe -U MAESTRO_PRD -o Z:\temp\hanaout_${yearmonth}.txt -I Z:\temp\hanasql_query.sql -m -V period=${yearmonth}
}

202101..202107 | ForEach-Object {
  Start-Job -ScriptBlock $cmd -ArgumentList $_
}

get-job