`
pumaboyd
  • 浏览: 249706 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL2005 - XML实体(XML错误)

    博客分类:
  • DBA
阅读更多

Job报错(AM 9:30 Receive Email)

这个是周五的时候发生的问题,一个原来运行好好的JOB,早上到公司。老大发来一封邮件,提示如下错误:

Executed as user: XML 分析: 行 1,字符 57,需要分号 [SQLSTATE 42000] (Error 9411).  The step failed.

没人改动过存储过程,那第一判断应该是“数据有变化”造成的问题。

错误重现(AM 10:30 Reproducibility BUG

开始查找问题,只要可以将问题重现,一切都好办。最后分析下来是将拼接的数据插入XML类型字段时发生。因为拼接的数据不符合XML规范.比如出现非法字符&

DECLARE @XML XML
SET @XML = '<User Name="CM&PP"></User>'

处理方法(AM 11:00 Find a Way):

问题知道了,可解决这个问题的方法却让我头疼。头疼不是我不知道怎么解决(替换&符号就可以了),而是以为MS会提供一个函数什么的解决,但目前得到的结论是没有。既然SQL2005支持XML格式,为什么不提供一个好的XML格式化的方式了。

尝试了使用SELECT CONVERT(XML,'<User Name="CM&PP"></User>')进行转换还是不行,

MSDN上我也没找到,Blogs上也未找到。我的搜索关键字不对?

请教达人,如有好的方法请指教。

我目前的解决方式是。自己写了一个函数进行替换。但XML格式比较复杂,还是希望能找到官方提供的方法。 .

CREATE function [dbo].[Func_FormatXML](@Input NVARCHAR(MAX))
returns NVARCHAR(MAX)
as
BEGIN
    --替换非法的XML字符串
    SET @Input = REPLACE(@Input,'&','&amp;')
    SET @Input = REPLACE(@Input,'>','&gt')
    SET @Input = REPLACE(@Input,'>','&lt;')
    SET @Input = REPLACE(@Input,'"','&quot;')
    SET @Input = REPLACE(@Input,'’','&apos;')
    return @Input
EN

结束(PM 2:00 Fix Bug)

周五中午例会结束后,问题提交DBA。《上班反恐X小时》结束!周末愉快!

Google 标记: SQL2005, XML
分享到:
评论

相关推荐

    linq-sql,linq-xml,微软专家整合,最全,最强项目实战

    2. **实体映射**:通过LINQ to SQL,数据库表被映射为类,表之间的关系被映射为类之间的关系,这使得数据库操作变得直观且易于理解。 3. **查询构造**:使用LINQ查询表达式或方法语法,可以构建复杂的查询,同时...

    SQL Server 2005 系列课程-SQL Server 2005与XML的紧密整合(上)(视频)

    在处理XML数据时,SQL Server 2005提供了T-SQL扩展,如`SELECT INTO`、`OPENXML`、`FOR XML`和`WITH XMLNAMESPACES`等,这些扩展使得在SQL语句中生成、解析和修改XML变得简单易行。例如,`FOR XML`子句可以将查询...

    SQL Server 2005用XML数据类型进行数据建模.pdf

    SQL Server 2005 中使用 XML 数据类型进行数据建模 SQL Server 2005 提供了 XML 数据类型,以便更好地处理和存储 XML 数据。在本文中,我们将介绍如何使用 XML 数据类型在 SQL Server 2005 中进行数据建模。 XML ...

    最好用的数据表sql.xml 和实体类生成工具

    标题中的“最好用的数据表sql.xml 和实体类生成工具”指的是一个高效且用户友好的工具,主要用于自动化数据库操作,特别是对于开发过程中常见的数据表映射到实体类以及SQL语句的生成工作。这类工具通常能够极大地...

    sql 转换成xml语言

    XML文档由元素、属性、实体、注释等构成,具有良好的可读性和可扩展性。XML文件通常用于在不同系统之间交换数据,因为它可以被任何支持XML的平台解析和生成。 三、SQL到XML的转换 1. SQL查询:首先,我们需要编写...

    ibatis的sql-map dtd

    DTD是XML文档类型定义,它定义了XML文档的合法构建块,包括元素、属性、实体等,确保XML文档遵循一定的结构,以便解析器能正确解析和处理。在Ibatis中,`sql-map-2.dtd`和`sql-map-config-2.dtd`分别对应于`sql-map`...

    mybatis的通用java-xml版逆向生成工程

    综上所述,"mybatis的通用java-xml版逆向生成工程"是一个基于MyBatis Generator的自动化工具,旨在简化数据库表与Java代码之间的映射关系,提高开发效率,减少错误。通过理解和熟练使用MBG,开发者可以更好地专注于...

    sqlserver to XML

    XML文档包含元素、属性、实体、命名空间等组成部分,可以方便地表示复杂的数据结构。 二、SQL Server中的XML功能 SQL Server提供了一系列内置函数和功能来处理XML数据,包括: 1. FOR XML子句:这是SQL Server中将...

    ssh-xml-template.zip

    这个名为"ssh-xml-template.zip"的压缩包文件提供了一个已经整合好的SSH框架模板,使用XML配置,旨在帮助开发者快速入门并进行项目开发。 **Struts2** 是一个MVC(Model-View-Controller)架构,它简化了Java Web...

    ASP-NET-XML深入编程

    7. **XML和ADO.NET**:XML可以作为数据库的一种替代或补充,书中会讲解如何将XML数据存取到SQL Server或其他数据库,以及使用DataSet和XML序列化进行数据交换。 8. **XML安全性**:涵盖XML签名、加密等安全机制,...

    mybatis-generator-sqlser-mysql.7z

    对于SQLServer,MBG支持多种数据类型,如INT、VARCHAR、DATE等,并能根据表的主键、外键关系生成合理的实体类、Mapper接口和XML配置文件。同样,对于MySQL数据库,MBG同样具备出色的兼容性,可以处理诸如InnoDB引擎...

    sql2000与sql2005的hibernate-configuration

    SQL Server 2000是微软发布的一款早期的关系型数据库管理系统,而SQL Server 2005则是其后续版本,带来了许多改进,包括增强的性能、安全性、支持XML、存储过程、触发器等新特性,以及更友好的管理工具如SQL Server...

    java将数据库表反射成java实体类xml中sql语句

    本主题聚焦于如何利用Java将数据库表自动反射为Java实体类,并自动生成对应的XML配置文件中的SQL操作语句,包括INSERT、SELECT、UPDATE等。 首先,数据库表和Java实体类之间的映射是ORM的核心概念。一个数据库表的...

    自动生成Mybatis 实体类、DaoMapper、XML可视化界面工具

    总之,这个工具为Mybatis开发提供了极大的便利,通过可视化的界面,开发者可以快速生成和管理实体类、Mapper接口以及XML映射文件,极大地提高了开发效率,减少了错误的可能性,同时也降低了学习和使用Mybatis的门槛...

    MS11-049:Microsoft XML Editor 信息泄露漏洞(2543893)(CVE-2011-1280)

    当解析特别构建的 Web Service Discovery (.disco) 文件时,外部 XML 实体可接受不受信任的用户输入。远程攻击者可通过诱骗用户打开特别构建的 .disco 文件来利用此问题,从而导致敏感信息泄露。 Microsoft 已发布一...

    实体类&SQL生成工具

    4. `config.xml`:配置文件,包含了工具运行时的设置,如数据库连接信息、生成的实体类和SQL语句的格式等。开发者可以根据项目需求调整这些设置。 5. `connectionInfor.xml`:数据库连接信息文件,存储了访问数据库...

    Freemarker代码生成器实体映射xml的ftl模板文件

    在这个场景下,"Freemarker代码生成器实体映射xml的ftl模板文件"是指利用Freemarker模板技术来创建一个用于生成XML实体映射文件的模板。这个`XML.ftl`文件就是核心,它是Freemarker模板的实例,其中定义了如何根据...

    根据实体mode导入导出xml

    本主题聚焦于“根据实体Model导入导出XML”,这通常涉及到Java开发中的对象序列化和反序列化过程,以及数据库操作。下面我们将详细探讨这一技术。 1. **XML的基本概念** - XML是一种标记语言,用于定义数据结构和...

    gen_sql自动从xml生成数据库读写代码

    `gen_sql`工具就是针对这一需求设计的,它能够自动从XML配置文件中生成相应的SQL语句和对应的数据库读写代码,极大地提高了开发效率,减少了手动编写SQL的繁琐工作。 `gen_sql`的核心功能在于解析XML文件,从中提取...

    generator-连接数据库生成实体类和mybatis的xml文件

    而"generator"则是MyBatis提供的一种代码生成工具,可以帮助开发者自动生成数据库表对应的实体类(DO)以及MyBatis的XML配置文件,大大提高了开发效率和减少了手动编码的工作量。 首先,让我们详细了解下MyBatis ...

Global site tag (gtag.js) - Google Analytics