【发布时间】:2013-05-28 09:40:46
【问题描述】:
我有一个奇怪的问题,有两个相同的代码:
第一个:
$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 值中没有逗号?
【问题讨论】:
-
您是否尝试过在函数中初始化
$arraysch= @()和$hash = @{}然后返回它们?
标签: oracle powershell oracle11g powershell-3.0