使用PowerShell连接到DB2

使用PowerShell连接到DB2,powershell,db2,Powershell,Db2,我正在尝试连接到DB2数据库并执行一些查询。几天前我让它工作,但现在它出现了一些非常奇怪的错误,我不知道为什么 PowerShell连接代码 $connection = New-Object System.Data.OleDb.OleDbConnection("Provider=IBMDADB2;Database=X;HostName=X;Protocol=TCPIP;Port=X;Uid=X;Pwd=X;CurrentSchema=X"); $ds = New-Object "System.D

我正在尝试连接到DB2数据库并执行一些查询。几天前我让它工作,但现在它出现了一些非常奇怪的错误,我不知道为什么

PowerShell连接代码

$connection = New-Object System.Data.OleDb.OleDbConnection("Provider=IBMDADB2;Database=X;HostName=X;Protocol=TCPIP;Port=X;Uid=X;Pwd=X;CurrentSchema=X");
$ds = New-Object "System.Data.DataSet"  

$da = New-Object System.Data.OleDb.OleDbDataAdapter($QuerySQL, $connection)
$da.Fill($ds)

$ds.Tables[0].Rows |
    select * -ExcludeProperty RowError, RowState, HasErrors, Name, Table, ItemArray |
    Export-Csv "c:\Scripts\results.csv" -encoding "unicode" -notype
我看到的错误是:

使用“1”参数调用“Fill”时出现异常:“没有可用的错误消息,结果代码:E_意外(0x8000FFFF)。”

有人知道为什么会这样吗


我还有其他脚本使用
Fill()
的方式完全相同,并且不会产生错误,所以这真的让我很困惑

好的,我已经弄明白了


您需要以管理员身份运行powershell才能使用DB2驱动程序。为什么会这样,我不知道,但我就是这样修好的

您需要将用户添加到
DB2Users
DB2Admns
组中。本地管理员组也可以工作,但出于安全原因,其他两个组更合适。默认情况下,这些组通常在安装DB2的服务器上创建。它们是本地组。

我想如果其他脚本使用相同的模式连接到同一个DB2实例,那么问题可能在于SQL查询。你能把它添加到问题中吗?我已经单独执行了查询,结果如下:/