【发布时间】:2012-03-26 13:58:35
【问题描述】:
当我尝试调用 Fill() 时会记录以下错误,并且我的 powershell 会话崩溃。
事件类型:错误事件源:.NET 运行时描述:.NET 运行时 版本 2.0.50727.3625 - 尝试读取或写入受保护的内存。 这通常表明其他内存已损坏。
我的脚本如下所示:
$asm = [System.Reflection.Assembly]::LoadWithPartialName(“Oracle.DataAccess”)
$userName = "foo"
$tnsDbName = "bar"
$pass = "foobar"
$connectionString = "User Id=$userName;Password=$pass;Data Source=$tnsDbName"
$q = @"
SELECT * FROM blah WHERE blar = '5848752'
"@
$cstr = $connectionString
$conn= New-Object Oracle.DataAccess.Client.OracleConnection($cstr)
$conn.open()
$adapter = New-Object Oracle.DataAccess.Client.OracleDataAdapter($q,$conn)
$dataset = New-Object Data.DataSet
$adapter.Fill($dataset)
$dataset.Tables[0]
如果我只通过“$adapter =”行来查看崩溃前的状态:
PS H:\> $asm.GetName()
Version Name
------- ----
10.2.0.100 Oracle.DataAccess
PS H:\> $adapter.SelectCommand.Connection | fl ClientID,ConnectionTimeout,ServerVersion,State
ClientId :
ConnectionTimeout : 15
ServerVersion : 10.2.0.4.0
State : Open
我愿意接受建议!可能已经在我的计算机上完成了对 ODP.NET 的更新,但是使用它的所有其他应用程序(一些简单的 winform 应用程序)和 Toad for Oracle 都可以正常工作。
【问题讨论】:
标签: oracle powershell odp.net