将数据插入CLOB列

时间:2019-02-16 19:39:09

标签: sql blob db2-400

我试图找到一种在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);

1 个答案:

答案 0 :(得分:0)

我假设您正在查看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>数据库>参考> SQL参考>语言元素> https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/db2/rbafzreferencelob.htm处的变量

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

您似乎想通过File引用变量将流文件移动到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()关键字