我正在编写一个简单的查询函数,以便在以后开始编写更多查询时,使我的脚本更高效、更简单。
Function Query($Query) {
$connectionString = "Provider=msolap;Data Source=$Server;Initial Catalog=$Database;"
$connection = New-Object System.Data.OleDb.OleDbConnection $connectionString
$command = New-Object System.Data.OleDb.OleDbCommand
$command.Connection = $connection
$command.CommandText = $Query
$connection.Open()
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter #$command
$adapter.SelectCommand = $command
$dataset = New-Object System.Data.DataSet
[void] $adapter.Fill($dataSet)
$connection.Close()
$dataSet.Tables[0]
}查询
SELECT [SESSION_ID], [SESSION_SPID]
FROM $SYSTEM.DISCOVER_SESSIONS";我知道这个错误:
使用"1“参数调用"Fill”的异常:“查询(1,41)‘的语法不正确(选择SESSION_ID,SESSION_SPID从.DISCOVER_SESSIONS)”。
我是不是遗漏了什么?我遵循了每个MSDocs的语法:
实际上,我在没有创建查询函数的情况下成功地尝试了它,并显示了结果。以某种方式使它成为一个查询函数,它不工作.
发布于 2019-01-28 21:08:54
使用单引号字符串:
Query 'SELECT [SESSION_ID],[SESSION_SPID] FROM $SYSTEM.DISCOVER_SESSIONS';在Powershell中,双引号字符串进行字符串内插,即将字符串中的$SYSTEM替换为变量SYSTEM的值,或者(在本例中)在未定义SYSTEM时替换为空白字符串。
https://stackoverflow.com/questions/54410271
复制相似问题