超时powershell命令

时间:2016-02-26 16:44:15

标签: powershell timeout powershell-v4.0

我使用ODP.net和Powershell在我的Oracle数据库上执行查询。

我想超时执行查询。这是我的代码:

[void][System.Reflection.Assembly]::LoadFile("C:\Oracle.ManagedDataAccess.dll")
$OracleConnexion = New-Object Oracle.ManagedDataAccess.Client.OracleConnection('User Id=test;Password="test";Data Source=10.0.0.0/TEST')

$FluxSiebel = "SELECT * FROM BLABLA"

Try { 

    $OracleConnexion.Open()

}Catch { 

    Write-Output "Connection KO"
    $OracleConnexion
    Exit 2
}


$Query=$OracleConnexion.CreateCommand()
$Query.CommandText=$FluxSiebel

$TimeTaken=  (Measure-Command  {

    $ExecuteQuery=$Query.ExecuteReader()

}).TotalMilliseconds | Out-String

我想在代码的这一部分添加1分钟的超时时间:$ExecuteQuery=$Query.ExecuteReader()

我该怎么做?我无法找到任何执行此操作的cmdlet ...

由于

1 个答案:

答案 0 :(得分:2)

在CreateCommand()

返回的Command对象上使用CommandTimeout

实施例

$cmd=$OracleConnexion.CreateCommand()
$cmd.CommandText=$FluxSiebel
$cmd.CommandTimeout = 60; # 1 minute (60 seconds)