我想知道,我们可以将参数传递给sql文件。如果是,那么如何
请帮忙。
答案 0 :(得分:0)
不,没有这方面的功能。
答案 1 :(得分:0)
比方说,我们有一个sql文件(test.sql),其中包含两个参数的简单选择-param1和param2。参数名称应以&开头。
echo "select '¶m1' param1, '¶m2' 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