2016-02-26 206 views
0

我使用Powershell的ODP.net在我的Oracle数据库上执行查询。超时powershell命令

我想暂停执行我的查询。这是我的代码:

[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的这样......

感谢

+0

https://开头的文档。 oracle.com/cd/E51173_01/win.122/e17732/OracleCommandClass.htm#DAFBGECA? –

回答

2

使用Command对象将CommandTimeout从CreateCommand()返回

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