使用 SQL 查询的结果作为变量的值

Use outcome of SQL query as value for variable

我有一个查询可以提取许多 API 的性能测量值,并且我希望随时间将这些 API 保存到一个文件夹中的不同文件中。说每小时一个 运行 和一个输出文件。

Invantive 脚本语句

local export results as "${exportfilename}" format xml

当您 exportfilename 正确设置后可以执行此操作。

使用 Oracle SQL*此外,您可以使用 column ... new_value 语法在变量中记住查询的结果。

如何使用 Invantive SQL 查询的结果设置 exportfile

解决方案是使用 ${outcome:row,column} 语法,如:

local define outfolder "c:\temp"

select sdy3.value || '-' || lpad(year(sysdate), 4, '0') || lpad(month(sysdate), 2, '0') || lpad(day(sysdate), 2, '0') || lpad(hour(sysdate), 2, '0') || lpad(minute(sysdate), 2, '0') ||'.xml' file_name
from   exactonlinerest..systemdatacontainerproperties sdy1
join   exactonlinerest..systemdatacontainerproperties sdy2
on     sdy2.data_container_alias = 'default'
and    sdy2.name = 'provider-description'
join   exactonlinerest..systemdatacontainerproperties sdy3
on     sdy3.data_container_alias = 'default'
and    sdy3.name = 'provider-short-name'
where  sdy1.data_container_alias = 'default'
and    sdy1.name = 'data-container-id'

local define exportfilename "${outfolder}${outcome:0,0}"

<<< Run actual SQL>>>

local export results as "${exportfilename}" format xml

${outcome:...,...} 语法将相应行号 (0..max) 和列号 (0..max) 的字符串表示形式作为值放入指定的变量名称中。