【发布时间】:2021-05-12 21:24:01
【问题描述】:
我想创建一个 power shell 脚本,它使用 sqlplus 循环连接字符串,但我不确定如何在 power shell 中执行此操作。
类似:
begin
for i in 1..10
loop
sqlplus .../...@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=...)(HOST=...)(PORT=...)))(CONNECT_DATA=(SID=...)))
--- wait for response then move foreward
end loop;
end
想法是我想测试连接字符串中不同的connection_timeout值以确定哪个值更稳定。
我在网上找到了这段 powershell 代码,但我不确定如何根据我的要求对其进行调整:
$lines = Get-Content 'c:\firstsecondnames.txt'
$DBs = "192.168.1.1"
$DB = "DBA"
$ConnectionTimeout = 90
$QueryTimeout = 90
foreach ($line in $lines) {
$vala = $line.Split(',')[0]
$valb = $line.Split(',')[1]
#DB query
$Query = "select ValC from dbo.PROCESSED_INTERCHANGES where Firstname = '$vala' and middlename = '$valb'"
$conn=new-object System.Data.SqlClient.SQLConnection
$ConnectionString = "Server={0};Database={1};Integrated Security=True;Connect Timeout={2}" -f $DBs,$DB,$ConnectionTimeout
$conn.ConnectionString=$ConnectionString
$conn.Open()
$cmd=new-object system.Data.SqlClient.SqlCommand($Query,$conn)
$cmd.CommandTimeout=$QueryTimeout
$ds=New-Object system.Data.DataSet
$da=New-Object system.Data.SqlClient.SqlDataAdapter($cmd)
[void]$da.fill($ds)
$conn.Close()
$conn.Dispose()
foreach ($valC in $ds.tables[0].rows.ValC) {
$fullname = $vala + $valb + $valC
Write-Host $fullname
}
}
【问题讨论】:
标签: powershell loops scripting sqlplus