【问题标题】:IMPORT script on IBM DB2 Cloud using RUN SQL InterfaceIBM DB2 Cloud 上使用 RUN SQL 接口的 IMPORT 脚本
【发布时间】:2019-08-28 03:58:13
【问题描述】:

我正在尝试使用 IBM DB2 云中的 RUN SQL 脚本将 JOBFILE.CSV 从我的硬盘导入表 JOB。

CALL SYSPROC.ADMIN_CMD('IMPORT FROM "C:/DATAFILE/JOBFILE.CSV" 
OF DEL INSERT INTO JOB');

我收到此错误:

打开时发生 I/O 错误(原因 =“sqlofopn -2029060079”) 输入文件.. SQLCODE=-3030, SQLSTATE= , DRIVER=4.25.1301

我设置的路径似乎不起作用。正如我所研究的,JOBFILE.CSV 必须先加载到 DB2 服务器中,然后 IMPORT 脚本才能运行。

【问题讨论】:

  • 通过调用存储过程 (admin_cmd),该文件必须已经驻留在 Db2 服务器上(而不是在您的客户端工作站上)。除了以下答案中的选项之外,您还可以安排使用工作站上的 Db2 命令行界面来访问云上的 Db2,就好像它在本地一样,然后您可以使用 IMPORT、LOAD、INGEST 命令从您的客户端工作站直接。

标签: db2 db2-luw


【解决方案1】:

对于位于本地客户端的文件,有两个“基本”选项(不包括用于导入数据的 Db2 Cloud REST API)

  1. LOAD with a CLIENT keyword(也适用于所有 Db2 LUW 本地版本)
  2. EXTERNAL TABLE 插入(在 Db2 Cloud、Warehouse 和 11.5 版本中可用)

后者通常是最快的。看一个像这样输入的例子:

db2 "create table import_test(c1 int, c2 varchar(10))"
echo "1,'test1'" > data.del
echo "2,'test2'" >> data.del

要从客户端插入我们需要的数据,我们可以运行:

db2 "INSERT INTO import_test SELECT * FROM EXTERNAL '/home/db2v111/data.del' USING (DELIMITER ',' REMOTESOURCE YES)"
DB20000I  The SQL command completed successfully.

db2 "select * from import_test"

C1          C2        
----------- ----------
          2 'test2'   
          1 'test1'   

  2 record(s) selected.

更多示例,包括从 S3 导入数据,请参阅文档的 Loading data to IBM Cloud 章节。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 2022-07-17
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    相关资源
    最近更新 更多