将数据插入CLOB列

问题描述 投票:0回答:1

我正在尝试找到一种在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个回答
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编程>处理特殊数据类型>示例:在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()关键字

© www.soinside.com 2019 - 2024. All rights reserved.