2
我有一个奇怪的问题,在两个相同的代码:同样的代码,但不同的结果
第一招:
$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"
第一个代码给我这个结果我$哈希
MYSERVER {TEST1,TEST2,TEST3,TEST4 ...}
,第二个给我这个
MYSERVER {} TEST1TEST2TEST3TEST4TEST5TEST6
为什么当我把代码中的一个功能,我没有在$哈希值逗号?
您是否尝试过初始化'$ arraysch = @()'和'$哈希= @ {}'函数中然后返回他们? – Richard