我使用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 ...
由于
答案 0 :(得分:2)
在CreateCommand()
返回的Command对象上使用CommandTimeout实施例
$cmd=$OracleConnexion.CreateCommand()
$cmd.CommandText=$FluxSiebel
$cmd.CommandTimeout = 60; # 1 minute (60 seconds)