我正在尝试找到一种在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);
我假设您正在查看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编程>处理特殊数据类型>示例:在https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/sqlp/rbafyexplob.htm上使用UDT,UDF和LOB
您需要记住的关键字是'LOB文件引用变量'。
如果您是RPG程序员,请在DCL-S语句https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzajp/rzajpirpglobfileref.htm上查找SQLTYPE()关键字