db2 import 或 load 可以用来填充 DashDB 吗?

Can db2 import or load be used to populate DashDB?

我希望将数百万行批量加载到 DashDB 数据库中。使用 DB2 CLI 连接后,我输入如下命令:

db2 import from rowsToImport.csv of del insert into MY_TABLE

结果:

SQL0551N  "DASHXXX" does not have the required authorization or privilege to
perform operation "BIND" on object "NULLID.SQLUAJ19".  SQLSTATE=42501

这是 DashDB 的固有限制,还是我的客户端配置不正确?我在尝试 db2 load:

时收到类似的消息
SQL2019N  An error occurred while utilities were being bound to the database.

p.s。我知道用于加载数据的 DashDB 的其余客户端 api - 我特别询问 how/if 可以使用 DB2 命令行作为替代选项来完成批量加载。

根据 dashDB documentation you can use the Command line processor plus (CLPPlus). It is included in the dashDB driver package and provides a command-line user interface that you can use to connect to the dashDB database, BLUDB. You can use CLPPlus to define, edit, and run statements, scripts, and commands. Please take also a look at Connecting CLPPlus to the dashDB database 查看如何连接和使用 CLI。

请注意,在 CLPPlus 中:IMPORT、EXPORT 和 LOAD 命令有一个限制,即处理的文件必须在服务器上:参见 here。因此,您应该首先使用 SCP 将输入加载文件复制到远程服务器上。但是 SSH/SCP 协议对于普通的 dashDB 用户应该被阻止(不可访问)。

只能使用 CLPPlus 中的 IDA LOADGEOSPATIALDATA command 从您的本地计算机将地理空间数据加载到 dashDB。 使用上述命令加载到 dashDB 的文件可以在本地文件系统中,CLPPlus 用户可以访问。

替代方法是:

根据this technote,NULLID.SQLUAJ19 包属于早期的 DB2 10.1 修复包之一,因此我怀疑您的客户端版本是 10.1。当尝试执行 IMPORT 命令时,它需要绑定一些旧版本的包,因为 dashDB 显然是 DB2 10.5。

您可能想尝试安装最新的 DB2 客户端修复包,因为数据库中可能已经绑定了必要的包。

验证您是否可以 运行 select pkgname from syscat.packages where pkgschema = 'NULLID' and pkgname like 'SQLUA%' -- 您应该看到 "SQLUAK20",它似乎是 DB2 10.5 中的相应包。

如果这不起作用,您的另一个选择可能是移动到专用的 dashDB 实例,因为您没有足够的权限来绑定入门级共享 dashDB 服务中丢失的包。