【问题标题】:Connecting to DB2 using PowerShell使用 PowerShell 连接到 DB2
【发布时间】:2019-06-03 22:31:48
【问题描述】:

我正在尝试连接到 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_UNEXPECTED(0x8000FFFF)。”

有人知道为什么会出现这种情况吗?

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

【问题讨论】:

  • 我猜如果您的其他脚本使用相同的模式连接到相同的 DB2 实例,那么问题可能出在您的 SQL 查询上。您可以将其添加到问题中吗?
  • 我已经单独执行了查询,它的工作原理:/

标签: powershell db2


【解决方案1】:

好的,我想通了。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-04-16
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多