【问题标题】:Inserting data into a CLOB column将数据插入 CLOB 列
【发布时间】:2019-07-10 15:17:33
【问题描述】:

我正在尝试找到一种在 BLOB 列上插入数据的方法。

在研究过程中,我在 IBM 网站上找到了这个示例,我不明白什么是“常规文件”。

这个例子的标题是“这个例子展示了如何将 :hv_text_file 引用的常规文件中的数据插入到 CLOB 列中”

:hv_text_file是一种包含要插入到blob列中的文件描述的变量吗?

strcpy(hv_text_file.name, "/home/userid/dirname/filnam.1");
hv_text_file.name_length = 
strlen("/home/userid/dirname/filnam.1");
hv_text_file.file_options = SQL_FILE_READ; /* this is a ’regular’ 
file */
EXEC SQL INSERT INTO CLOBTAB
VALUES(:hv_text_file);

【问题讨论】:

    标签: sql blob db2-400


    【解决方案1】:

    我假设您正在查看 Db2 SQL 编程参考:IBM i 7.2 > 数据库 > 编程 > SQL 编程 > 处理特殊数据类型 > 大对象https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/sqlp/rbafyexampinsertclob.htm

    这是一个程序片段;它假定您已阅读并理解如何引用 LOB 列:IBM i 7.2 > Database > Reference > SQL reference > Language elements > Variables at https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/db2/rbafzreferencelob.htm

    在那里,您可以看到有两种类型的 LOB 引用: 1) LOB 或 XML 定位器变量 2) XML文件引用变量的LOB

    您似乎想通过文件引用变量将流文件移动到 BLOB 中。快速摘要在第二个链接中,但“常规文件的含义”的答案如下:

    目前在根目录 (/) 中支持文件引用变量, QOpenSys 和 UDFS 文件系统。创建文件时,会给出 正在写入文件的数据的 CCSID。现在, 不支持混合 CCSID。使用由文件创建的文件 引用变量,文件应该以二进制模式打开。

    所以,“常规文件”是指 IFS 流文件。

    可能有助于说明示例的程序片段的“另一半”位于 SQL 编程参考中:IBM i 7.2 > 数据库 > 编程 > SQL 编程 > 处理特殊数据类型 > 示例:使用 UDT、UDF 和 LOB在https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/sqlp/rbafyexplob.htm

    您需要记住的关键字是“LOB 文件引用变量”。

    如果您是 RPG 程序员,请在 DCL-S 语句 https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzajp/rzajpirpglobfileref.htm 上查找 SQLTYPE() 关键字

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-01
      相关资源
      最近更新 更多