Toad for Oracle v14无法导出数据 提示closed dataset错误
故障原因
Toad for Oracle 14版本默认调整了数据网格的查询加载逻辑,默认开启异步分页抓取,不会在执行查询时一次性拉取全量结果集。当本地配置存在旧版本残留、异步加载线程异常中断时,会提前关闭数据集句柄,此时触发导出、跳转结果集最后一行这类需要访问全量数据的操作,就会抛出Qry: Cannot perform this operation on a closed dataset报错,和导出的数据集体量没有直接关系。旧版本默认同步全量拉取结果,因此不会触发同类问题。
解决步骤
按顺序操作,每步完成后测试功能,恢复正常就不用执行后续步骤:
- 调整结果集加载配置
打开顶部菜单栏View > Toad Options,依次进入Oracle > General页签,勾选Fetch all rows on execute选项;再进入Data Grids > Visual页签,取消勾选Enable asynchronous fetching选项,点击OK保存后重启Toad测试。这是14版本最常见的配置不匹配问题,单人环境报错80%以上改完即可恢复。 - 重置本地用户配置
关闭Toad,进入本地配置默认路径C:\Users\<你的Windows登录名>\AppData\Roaming\Quest Software\Toad for Oracle\14.0,找到User Files文件夹重命名为User Files_old,重启Toad后会自动生成全新的默认配置文件,再测试功能。这个操作用于解决跨版本升级时旧配置文件和新版本逻辑不兼容的问题,同环境其他同事功能正常基本都是本地配置残留导致的差异。 - 校验Oracle客户端匹配性
打开Toad的Database > Support > Client Version查看当前绑定的OCI客户端版本,确保客户端大版本和连接的Oracle数据库大版本差不超过2(比如不要用19c客户端直连11g数据库),14版本对OCI接口的合规校验比旧版本严格,客户端版本跨度过大时会出现抓取中途连接释放、数据集关闭的问题。
测试提示:每次调整配置后,先用小查询测试跳转结果集最后一行的功能,确认不报错后再测试大数量级导出,避免大查询耗时过长。
内容的提问来源于stack exchange,提问作者ace123
相关产品推荐
相关产品推荐

