当前位置: 首页 > 知识库问答 >
问题:

不能用UTL_FILE.PUT_LINE写入大尺寸数据

孙嘉
2023-03-14

我创建了一个包含大量数据的xml。现在,我正在尝试将生成的xml写入一个文件

声明:

prodFeed_file  UTL_FILE.FILE_TYPE;
prodFeed_file := UTL_FILE.FOPEN ('CSV_DIR', 'feed.xml', 'w', 32767); 

写入文件:

UTL_FILE.PUT_LINE(prodFeed_file,l_xmltype.getClobVal);

UTL_FILE.FCLOSE(prodFeed_file);

如果l_xmltype.getclobval返回有限的记录,则该记录是工作文件,但如果l_xmltype.getclobval超出大小(几乎35 KB),则会出现错误:

ORA-06502:PL/SQL:数值或值错误

共有1个答案

齐建白
2023-03-14

UTL_FILE文档说明:

“缓冲区参数的最大大小为32767字节,除非在Fopen中指定较小的大小。”

您必须逐块地编写CLOB。类似于这样:

DECLARE
  v_clob CLOB;
  v_clob_length INTEGER;
  pos INTEGER := 1;
  buffer VARCHAR2(32767);
  amount BINARY_INTEGER := 32760;
  prodFeed_file utl_file.file_type;
BEGIN
  prodFeed_file := UTL_FILE.FOPEN ('CSV_DIR', 'productFeedLargo.xml', 'w', 32767);
  v_clob := l_xmltype.getClobVal;
  v_clob_length := length(v_clob);

  WHILE pos < v_clob_length LOOP
    dbms_lob.read(v_clob, amount, pos, buffer);
    utl_file.put(prodFeed_file , char_buffer);
    utl_file.fflush(prodFeed_file);
    pos := pos + amount;
  END LOOP;

  utl_file.fclose(prodFeed_file);

END;
/
 类似资料:
  • 设置4个位置的值 我们可以把4个位置(top, bottom, left 和 right)写在一个CSS属性中,也就是CSS属性的速写形式。 比如 padding 就是4个位置变体(padding-top, padding-bottm, padding-left 和 padding-right)的速写。 padding 可以一次性把所有位置设置成相同的值: blockquote{ padding:

  • 为什么不可能创建最大int大小的数组? 我找到了这样的解释: null

  • 我试图用PyTorch LSTM训练一个简单的2层神经网络,但我很难解释PyTorch留档。具体来说,我不太确定如何处理我的训练数据。 我想做的是通过小批次在一个非常大的数据集上训练我的网络,每个批次有100个元素长。每个数据元素将具有5个特征。留档声明层的输入应该是形状(seq_len,batch_size,input_size)。我应该如何调整输入? 我一直在关注这篇文章:https://di

  • 使用网格的列来设置输入框的大小,如 .large-6, .medium-6, 等。 更多网格系统知识,可以点击 相等大小列 以下演示了相等大小列的实例: 实例<form>   <div>     <div>       <label>medium-4 (100% on small, stacked)         <input type="text" placeholder="Name">   

  • 问题内容: 我目前正在尝试学习Numpy和Python。给定以下数组: 是否有一个函数返回尺寸(ega是一个2 x 2数组)的函数? 返回4并没有太大帮助。 问题答案: 是: ndarray。 数组尺寸的 形状 元组。 从而:

  • 问题内容: 我使用SciPy和scikit-learn来训练和应用多项朴素贝叶斯分类器进行二进制文本分类。准确地讲,我使用该模块来创建稀疏矩阵,该稀疏矩阵包含来自文本的单词特征计数,并使用该模块作为分类器实现,用于在训练数据上训练分类器并将其应用于测试数据。 的输入是表示为unicode字符串的文本文档列表。训练数据比测试数据大得多。我的代码如下所示(简化): 问题:一 接到电话,我就知道了。根据