总结

通过def定义文件绕过选取表名的操作, 从而避免界面无响应

问题

使用PLSQL的文本导入器时, 当选取的所有者下表较多时, 会由于查询数据过多导致界面无响应或等待超长时间
注意是选取表名的时候无响应, 不是导入数据的过程中无响应

步骤

  • 通过菜单栏工具 > 文本导入器打开导入窗口, 可以见到顶部几个按钮, 鼠标停留在按钮上可以看到提示信息

image

  • 这里先点击打开文件按钮, 其余3个先不操作, 选择要导入的文件, 导入后可以查看到预览数据, 按需要调整字段等信息

image

  • 点击"到 oracle 的数据"切换界面
  • 这里跳过选取所有者和表的操作, 因为所有者下的表过多, 选取表时, 界面就无响应
  • 选取字段列表中的第一项, 在右侧, 切换一下字段类型, 这一步目的是激活保存按钮
  • 点击保存为按钮, 地址选到桌面或其他方便的位置, 名称随意

image

  • 用文本编辑器打开刚才保存的文件, 文件类型应该是def, 大约在第11/12行, 找到如下内容并修改为目标所有者(用户名)和表名, 然后保存
TableOwner=表所在的用户
OracleTable=表名称

如本例中的

TableOwner=scott
OracleTable=TEXT_IMPORT
  • 返回PLSQL, 点击保存旁边的打开定义文件按钮, 选择刚才编辑的文件

image

  • 此时所有者和表就填好了
  • 选择字段列表中的第一个字段, 在右侧选择对应的字段和类型
  • 到此就通过定义文件的方式跳过了查询用户表导致的无响应问题