感谢您的帮助;我需要查询此XML结构以将记录插入CLOB字段,但SQL Developer在查询中将此错误发送给我:
注意:XML字符串非常非常长,这三个记录仅作为示例。
ORA-01704: literal de cadena demasiado largo
01704. 00000 - "string literal too long"
*Cause: The string literal is longer than 4000 characters.
*Action: Use a string literal of at most 4000 characters.
Longer values may only be entered using bind variables.
Error en la línea: 4, columna: 1
with t as
(
select XMLTYPE(
'<?xml version="1.0" encoding="UTF-8"?><dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XMLTitulares.xsd" generated="2017-09-28T12:56:19">
<XMLTitulares><ID>72</ID><ORDEN>7</ORDEN><SIGLAS>INAPESCA</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE LA PESCA</DEPENDENCIA><TITULAR>DR. PABLO ARENAS FUENTES</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE LA PESCA</CARGO><CCP_TITULAR>Dr. Pablo Arenas Fuentes,</CCP_TITULAR><CCP_CARGO>Director General del INAPESCA.</CCP_CARGO><TELEFONOSD>Conm. 38-71-95-00 y 38-71-95-02 Ext. 55003</TELEFONOSD><DIRECCIÓN>Pitágoras No. 1320, 8° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Entre Miguel Laurent y Pilares,</ENTRE_LAS_CALLES><COLONIA>Santa Cruz Atoyac</COLONIA><MUNICIPIO>Benito Juárez</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>03310</CP><E-MAIL>pablo.arenas@inapesca.gob.mx</E-MAIL><CSO>0</CSO><OICEXT_ID>SAGARPA</OICEXT_ID><SIGLAS_CS>085</SIGLAS_CS><FECHA>2017-02-09T14:28:30</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación la reciben en el Mezzanine en Oficialía de Partes, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.inp.sagarpa.gob.mx#http://www.inp.sagarpa.gob.mx#</PAGINA_DE_INTERNET><PInicio1>2015-01-16T00:00:00</PInicio1><Pfin1>2020-11-30T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
<XMLTitulares><ID>949</ID><ORDEN>7</ORDEN><SIGLAS>INCAN</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE CANCEROLOGÍA</DEPENDENCIA><TITULAR>DR. ANTELMO ABELARDO MENESES GARCÍA</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE CANCEROLOGÍA</CARGO><CCP_TITULAR>Dr. Antelmo Abelardo Meneses García,</CCP_TITULAR><CCP_CARGO>Director General del INCAN.</CCP_CARGO><TELEFONOSD>Dir. 56-28-04-01, 56-28-04-02 y 56-28-04-03, Conm. 56-28-04-00 Ext. 44001, 4402 y 4403</TELEFONOSD><DIRECCIÓN>Av. San Fernando No. 22, Torre de Hospitalización, 4° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Av. San Fernando y Calz. de Tlalpan,</ENTRE_LAS_CALLES><COLONIA>Sección XVI</COLONIA><MUNICIPIO>Tlalpan</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>14080</CP><E-MAIL>menesesabelardo@gmail.com</E-MAIL><CSO>0</CSO><DENOMINACIÓN>Secretaría de Salud</DENOMINACIÓN><SIGLAS_CS>101</SIGLAS_CS><FECHA>2017-06-21T13:55:40</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja de 7:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación se recibe en Oficialía de Partes, Planta Baja de 8:00 a 16:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.incan.edu.mx#http://www.incan.edu.mx#</PAGINA_DE_INTERNET><PInicio1>2013-08-17T00:00:00</PInicio1><Pfin1>2018-08-16T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
<XMLTitulares><ID>72</ID><ORDEN>7</ORDEN><SIGLAS>INAPESCA</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE LA PESCA</DEPENDENCIA><TITULAR>DR. PABLO ARENAS FUENTES</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE LA PESCA</CARGO><CCP_TITULAR>Dr. Pablo Arenas Fuentes,</CCP_TITULAR><CCP_CARGO>Director General del INAPESCA.</CCP_CARGO><TELEFONOSD>Conm. 38-71-95-00 y 38-71-95-02 Ext. 55003</TELEFONOSD><DIRECCIÓN>Pitágoras No. 1320, 8° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Entre Miguel Laurent y Pilares,</ENTRE_LAS_CALLES><COLONIA>Santa Cruz Atoyac</COLONIA><MUNICIPIO>Benito Juárez</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>03310</CP><E-MAIL>pablo.arenas@inapesca.gob.mx</E-MAIL><CSO>0</CSO><OICEXT_ID>SAGARPA</OICEXT_ID><SIGLAS_CS>085</SIGLAS_CS><FECHA>2017-02-09T14:28:30</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación la reciben en el Mezzanine en Oficialía de Partes, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.inp.sagarpa.gob.mx#http://www.inp.sagarpa.gob.mx#</PAGINA_DE_INTERNET><PInicio1>2015-01-16T00:00:00</PInicio1><Pfin1>2020-11-30T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
</dataroot>'
) as xml_
from dual
)
select XMLRoot(s.column_value, VERSION '1.0" encoding="UTF-8').getClobVal() as "CLOB FIELD"
from t, table(xmlsequence(EXTRACT(t.xml_, '/dataroot/XMLTitulares')))s;
如果您也帮助我,我将非常感谢您的帮助,告诉我如何进行插入程序。非常感谢!!!!
答案 0 :(得分:1)
你可以通过PL / SQL来定义al long long literal,如提议的那样。 here
SQL失败
select XMLTYPE(
'<?xml version="1.0" encoding="UTF-8"?><dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XMLTitulares.xsd" generated="2017-09-28T12:56:19">
<XMLTitulares><ID>72</ID><ORDEN>7</ORDEN><SIGLAS>INAPESCA</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE LA PESCA</DEPENDENCIA><TITULAR>DR. PABLO ARENAS FUENTES</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE LA PESCA</CARGO><CCP_TITULAR>Dr. Pablo Arenas Fuentes,</CCP_TITULAR><CCP_CARGO>Director General del INAPESCA.</CCP_CARGO><TELEFONOSD>Conm. 38-71-95-00 y 38-71-95-02 Ext. 55003</TELEFONOSD><DIRECCIÓN>Pitágoras No. 1320, 8° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Entre Miguel Laurent y Pilares,</ENTRE_LAS_CALLES><COLONIA>Santa Cruz Atoyac</COLONIA><MUNICIPIO>Benito Juárez</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>03310</CP><E-MAIL>pablo.arenas@inapesca.gob.mx</E-MAIL><CSO>0</CSO><OICEXT_ID>SAGARPA</OICEXT_ID><SIGLAS_CS>085</SIGLAS_CS><FECHA>2017-02-09T14:28:30</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación la reciben en el Mezzanine en Oficialía de Partes, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.inp.sagarpa.gob.mx#http://www.inp.sagarpa.gob.mx#</PAGINA_DE_INTERNET><PInicio1>2015-01-16T00:00:00</PInicio1><Pfin1>2020-11-30T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
<XMLTitulares><ID>949</ID><ORDEN>7</ORDEN><SIGLAS>INCAN</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE CANCEROLOGÍA</DEPENDENCIA><TITULAR>DR. ANTELMO ABELARDO MENESES GARCÍA</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE CANCEROLOGÍA</CARGO><CCP_TITULAR>Dr. Antelmo Abelardo Meneses García,</CCP_TITULAR><CCP_CARGO>Director General del INCAN.</CCP_CARGO><TELEFONOSD>Dir. 56-28-04-01, 56-28-04-02 y 56-28-04-03, Conm. 56-28-04-00 Ext. 44001, 4402 y 4403</TELEFONOSD><DIRECCIÓN>Av. San Fernando No. 22, Torre de Hospitalización, 4° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Av. San Fernando y Calz. de Tlalpan,</ENTRE_LAS_CALLES><COLONIA>Sección XVI</COLONIA><MUNICIPIO>Tlalpan</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>14080</CP><E-MAIL>menesesabelardo@gmail.com</E-MAIL><CSO>0</CSO><DENOMINACIÓN>Secretaría de Salud</DENOMINACIÓN><SIGLAS_CS>101</SIGLAS_CS><FECHA>2017-06-21T13:55:40</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja de 7:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación se recibe en Oficialía de Partes, Planta Baja de 8:00 a 16:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.incan.edu.mx#http://www.incan.edu.mx#</PAGINA_DE_INTERNET><PInicio1>2013-08-17T00:00:00</PInicio1><Pfin1>2018-08-16T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
<XMLTitulares><ID>72</ID><ORDEN>7</ORDEN><SIGLAS>INAPESCA</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE LA PESCA</DEPENDENCIA><TITULAR>DR. PABLO ARENAS FUENTES</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE LA PESCA</CARGO><CCP_TITULAR>Dr. Pablo Arenas Fuentes,</CCP_TITULAR><CCP_CARGO>Director General del INAPESCA.</CCP_CARGO><TELEFONOSD>Conm. 38-71-95-00 y 38-71-95-02 Ext. 55003</TELEFONOSD><DIRECCIÓN>Pitágoras No. 1320, 8° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Entre Miguel Laurent y Pilares,</ENTRE_LAS_CALLES><COLONIA>Santa Cruz Atoyac</COLONIA><MUNICIPIO>Benito Juárez</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>03310</CP><E-MAIL>pablo.arenas@inapesca.gob.mx</E-MAIL><CSO>0</CSO><OICEXT_ID>SAGARPA</OICEXT_ID><SIGLAS_CS>085</SIGLAS_CS><FECHA>2017-02-09T14:28:30</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación la reciben en el Mezzanine en Oficialía de Partes, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.inp.sagarpa.gob.mx#http://www.inp.sagarpa.gob.mx#</PAGINA_DE_INTERNET><PInicio1>2015-01-16T00:00:00</PInicio1><Pfin1>2020-11-30T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
</dataroot>'
) as xml_
from dual;
SQL-Fehler: ORA-01704: string literal too long
01704. 00000 - "string literal too long"
*Cause: The string literal is longer than 4000 characters.
但PL / SQL正常工作
drop table myTab;
create table myTab
(myXML XMLType);
DECLARE
myClob CLOB;
BEGIN
myClob := '<?xml version="1.0" encoding="UTF-8"?><dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XMLTitulares.xsd" generated="2017-09-28T12:56:19">
<XMLTitulares><ID>72</ID><ORDEN>7</ORDEN><SIGLAS>INAPESCA</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE LA PESCA</DEPENDENCIA><TITULAR>DR. PABLO ARENAS FUENTES</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE LA PESCA</CARGO><CCP_TITULAR>Dr. Pablo Arenas Fuentes,</CCP_TITULAR><CCP_CARGO>Director General del INAPESCA.</CCP_CARGO><TELEFONOSD>Conm. 38-71-95-00 y 38-71-95-02 Ext. 55003</TELEFONOSD><DIRECCIÓN>Pitágoras No. 1320, 8° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Entre Miguel Laurent y Pilares,</ENTRE_LAS_CALLES><COLONIA>Santa Cruz Atoyac</COLONIA><MUNICIPIO>Benito Juárez</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>03310</CP><E-MAIL>pablo.arenas@inapesca.gob.mx</E-MAIL><CSO>0</CSO><OICEXT_ID>SAGARPA</OICEXT_ID><SIGLAS_CS>085</SIGLAS_CS><FECHA>2017-02-09T14:28:30</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación la reciben en el Mezzanine en Oficialía de Partes, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.inp.sagarpa.gob.mx#http://www.inp.sagarpa.gob.mx#</PAGINA_DE_INTERNET><PInicio1>2015-01-16T00:00:00</PInicio1><Pfin1>2020-11-30T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
<XMLTitulares><ID>949</ID><ORDEN>7</ORDEN><SIGLAS>INCAN</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE CANCEROLOGÍA</DEPENDENCIA><TITULAR>DR. ANTELMO ABELARDO MENESES GARCÍA</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE CANCEROLOGÍA</CARGO><CCP_TITULAR>Dr. Antelmo Abelardo Meneses García,</CCP_TITULAR><CCP_CARGO>Director General del INCAN.</CCP_CARGO><TELEFONOSD>Dir. 56-28-04-01, 56-28-04-02 y 56-28-04-03, Conm. 56-28-04-00 Ext. 44001, 4402 y 4403</TELEFONOSD><DIRECCIÓN>Av. San Fernando No. 22, Torre de Hospitalización, 4° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Av. San Fernando y Calz. de Tlalpan,</ENTRE_LAS_CALLES><COLONIA>Sección XVI</COLONIA><MUNICIPIO>Tlalpan</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>14080</CP><E-MAIL>menesesabelardo@gmail.com</E-MAIL><CSO>0</CSO><DENOMINACIÓN>Secretaría de Salud</DENOMINACIÓN><SIGLAS_CS>101</SIGLAS_CS><FECHA>2017-06-21T13:55:40</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja de 7:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación se recibe en Oficialía de Partes, Planta Baja de 8:00 a 16:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.incan.edu.mx#http://www.incan.edu.mx#</PAGINA_DE_INTERNET><PInicio1>2013-08-17T00:00:00</PInicio1><Pfin1>2018-08-16T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
<XMLTitulares><ID>72</ID><ORDEN>7</ORDEN><SIGLAS>INAPESCA</SIGLAS><DEPENDENCIA>INSTITUTO NACIONAL DE LA PESCA</DEPENDENCIA><TITULAR>DR. PABLO ARENAS FUENTES</TITULAR><CARGO>DIRECTOR GENERAL DEL INSTITUTO NACIONAL DE LA PESCA</CARGO><CCP_TITULAR>Dr. Pablo Arenas Fuentes,</CCP_TITULAR><CCP_CARGO>Director General del INAPESCA.</CCP_CARGO><TELEFONOSD>Conm. 38-71-95-00 y 38-71-95-02 Ext. 55003</TELEFONOSD><DIRECCIÓN>Pitágoras No. 1320, 8° Piso,</DIRECCIÓN><ENTRE_LAS_CALLES>Entre Miguel Laurent y Pilares,</ENTRE_LAS_CALLES><COLONIA>Santa Cruz Atoyac</COLONIA><MUNICIPIO>Benito Juárez</MUNICIPIO><ESTADO>Ciudad de México</ESTADO><CP>03310</CP><E-MAIL>pablo.arenas@inapesca.gob.mx</E-MAIL><CSO>0</CSO><OICEXT_ID>SAGARPA</OICEXT_ID><SIGLAS_CS>085</SIGLAS_CS><FECHA>2017-02-09T14:28:30</FECHA><OBSERVACIONES_TITULAR>La documentación se recibe en Oficialía de Partes, Planta Baja, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_TITULAR><OBSERVACIONES_CI>La documentación la reciben en el Mezzanine en Oficialía de Partes, de 9:00 a 15:00 y 16:00 a 18:00 hrs.</OBSERVACIONES_CI><TIPO>a esa entidad fiscalizada.</TIPO><Ruta_Titular>2</Ruta_Titular><PAGINA_DE_INTERNET>www.inp.sagarpa.gob.mx#http://www.inp.sagarpa.gob.mx#</PAGINA_DE_INTERNET><PInicio1>2015-01-16T00:00:00</PInicio1><Pfin1>2020-11-30T00:00:00</Pfin1><foraneo>0</foraneo><EntDept>F</EntDept><ccpSFP>Mtra. Arely Gómez González, Secretaria de la Función Pública.</ccpSFP><ACTUALIZADODEF>0</ACTUALIZADODEF></XMLTitulares>
</dataroot>';
insert into myTab (myXML)
select XMLTYPE(myClob) as xml_
from dual;
commit;
END;
/
select length(c.myxml.getClobVal()) from myTab c;
5229
所以这可以安全地工作在4000个字符以上,但是长度限制为32767.
您需要针对更长的字符串进行解决方法,例如分裂成块:
select XMLTYPE(myClob||myClob2)
对于极长文档,您可能会选择从文件中读取它们并将其作为绑定变量传递。