PL / SQL:ORA-00932:数据类型不一致:预期-获得CLOB

时间:2019-06-08 05:34:37

标签: sql stored-procedures

在存储过程中插入表时,我想删除XML空节点。我尝试了一些代码,它抛出错误为

  

PL / SQL:ORA-00932:数据类型不一致:预期-获得CLOB。

因此,请任何人帮助我找出Clob错误。 int_content列变量仅是clob。

INSERT
      INTO int_details
        (
          int_rid,
          int_cpy,
          int_brn,
          int_sre,
          int_ree,
          int_type,
          int_filename,
          int_content,
          int_status,
          int_remarks,
          int_blob_content
        )
        VALUES
        (
          v_int_rid,
          p_cpy_rid,
          1,
          p_inty_rid,
          null,
          null,
          TO_CHAR(sysdate, 'DDMMYYHH24MISS')||'.xml',
          deleteXML(v_clob, '//*[not(text())][not(*)]').getclobval(),
          'Active',
          'EDI Generated on'||TO_CHAR(sysdate, 'DD-MON-YYY HH24:MI:SS'),
          v_blob
        );

1 个答案:

答案 0 :(得分:0)

对于大的凌乱插入,请在值和列列表中以相同的行数对其进行布局:

INSERT
  INTO int_details
    (
      int_rid,
      int_cpy,
      int_brn,
      int_sre,
      int_ree,
      int_type,
      int_filename,
      int_content,
      int_status,
      int_remarks,
      int_blob_content
    )
    VALUES
    (
      v_int_rid,
      p_cpy_rid,
      1,
      p_inty_rid,
      null,
      null,
      TO_CHAR(sysdate, 'DDMMYYHH24MISS')||'.xml',
      deleteXML(v_clob, '//*[not(text())][not(*)]').getclobval(),
      'Active',
      'EDI Generated on'||TO_CHAR(sysdate, 'DD-MON-YYY HH24:MI:SS'),
      v_blob
    );

请注意,我已删除了您的一个null值,使其降至11个值。这可能不正确。我不知道你想怎么办您必须正确解决

或者在多行代码中注释硬性价值,或者将代码块分成视觉可数的事物

INSERT
  INTO int_details
    (
      int_rid,
      int_cpy,
      int_brn,
      int_sre,
      int_ree,
      int_type,
      int_filename,
      int_content,
      int_status,
      int_remarks,
      int_blob_content
    )
    VALUES
    (
      v_int_rid,
      p_cpy_rid,
      1, --int_brn
      p_inty_rid,
      null, --int_ree
      null, --int_type

      --int_filename
      null
        ||TO_CHAR(sysdate, 'DDMMYYHH24MISS')||'.xml',

      --int_content
      deleteXML(v_clob, '//*[not(text())][not(*)]').getclobval(),

      --int_status
      'Active',

      --int_remarks
      'EDI Generated on'
      ||TO_CHAR(sysdate, 'DD-MON-YYY HH24:MI:SS'),

      v_blob
    );