我有一个奇怪的问题,有两个相同的代码:
第一个 :
$arraysch= @()
$hash = @{}
Add-Type -Path "C:\app\aasif\product\11.2.0\client_2\odp.net\managed\common\Oracle.ManagedDataAccess.dll"
$con = New-Object Oracle.ManagedDataAccess.Client.OracleConnection("User Id=sys;Password=password;Data Source=Myserver/oracle;DBA privilege=SYSDBA")
$con.Open()
$cmd=$con.CreateCommand()
$cmd.CommandText="select distinct owner from all_tables where table_name = 'Mytable'"
$rdr=$cmd.ExecuteReader()
while ($rdr.Read()) {
$arraysch += $rdr.GetString(0)
}
$hash["Myserver"] = [array]$arraysch
$con.close()
第二个,谁在起作用,但它是一样的:
$arraysch= @()
$hash = @{}
Add-Type -Path "C:\app\aasif\product\11.2.0\client_2\odp.net\managed\common\Oracle.ManagedDataAccess.dll"
function GetOracleDb {
param([string]$servername)
$con = New-Object Oracle.ManagedDataAccess.Client.OracleConnection("User Id=sys;Password=password;Data Source=$servername/oracle;DBA privilege=SYSDBA")
$con.Open()
$cmd=$con.CreateCommand()
$cmd.CommandText="select distinct owner from all_tables where table_name = 'Mytable'"
$rdr=$cmd.ExecuteReader()
while ($rdr.Read()) {
$arraysch += $rdr.GetString(0)
}
$hash[$servername] = [array]$arraysch
$con.close()
}
GetOracleDb "Myserver"
第一个代码在我的 $hash 中给了我这个结果
我的服务器 {TEST1、TEST2、TEST3、TEST4...}
第二个给我这个
我的服务器 {TEST1TEST2TEST3TEST4TEST5TEST6}
为什么当我将代码放入函数时,$hash 值中没有逗号?