Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm midrange 将CLOB数据写入SQL RPGILE中的IFS文件_Ibm Midrange_Rpgle - Fatal编程技术网

Ibm midrange 将CLOB数据写入SQL RPGILE中的IFS文件

Ibm midrange 将CLOB数据写入SQL RPGILE中的IFS文件,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我有一个RPGILE程序,它将带有XMLSERIALIZE的SQL返回到CHAR(32000)变量。 有时结果将超过32k大小。 最简单的方法是什么?如果我定义一个clob字段,然后使用它返回SQL结果,那么程序不会编译。 我在QTEMP中创建了一个带有clob字段的文件,然后将结果插入该文件,然后将其写入IFS,而不是在RPG中返回值。 但是XML文件的结尾似乎有无效数据,而且无法使用,你有什么想法吗 XML处理 文件写入 看看这本书 您可能希望将主机变量定义为SQL类型,如: dcl-s R

我有一个RPGILE程序,它将带有XMLSERIALIZE的SQL返回到CHAR(32000)变量。 有时结果将超过32k大小。 最简单的方法是什么?如果我定义一个clob字段,然后使用它返回SQL结果,那么程序不会编译。 我在QTEMP中创建了一个带有clob字段的文件,然后将结果插入该文件,然后将其写入IFS,而不是在RPG中返回值。 但是XML文件的结尾似乎有无效数据,而且无法使用,你有什么想法吗

XML处理 文件写入 看看这本书

您可能希望将主机变量定义为SQL类型,如:

dcl-s ResultXML SQLTYPE(CLOB:32000);

提供最少的代码,可以帮助您了解问题所在。谢谢,问题是当数据超过32k大小时…我建议您查看以下链接:谢谢,它可以工作,但是当我从IFS(通过电子邮件)检索我的文件时,它最后有一些空值。知道如何删除它们吗?当我将CLOB文件写入IFS时,它是以我在SQL类型中指定的大小创建的(例如10m),即使我有小数据,是否有办法使CLOB文件更小,即实际写入的数据的大小?变量包含CLOB中数据的长度。你能用它来决定要写多少数据吗?
... then we write it to the IFS
EVAL fd = open(%trimr(resp_file): 74 :511);                   
if fd=-1;                                                     
   eval      RC = perror(resp_file);                          
   return;                                                     
endif;                                                        
 EVAL rc = write(fd:%addr(ResultXML)+2:%len(ResultXML));       
 EVAL rc = close(fd);                                          
dcl-s ResultXML SQLTYPE(CLOB:32000);