在CMD和SQL中转义≤和≥

时间:2019-02-20 16:44:20

标签: sql sql-server build escaping liquibase

我有一个构建过程,其中从liquibase changelog文件(它是XML文件)生成数据库。它为SQL Server数据库生成一个SQL脚本,为Oracle数据库生成一个SQL脚本。现在,构建过程中的CMD遇到了的问题,并且SQL Server也遇到了的问题

例如,这是我的liquibase更改日志文件中的一条语句

<update tableName="MAI_THRESHOLD_DEF">
        <column name="MAI_RSLT_NAME" value="PTB Ratio"/>
        <column name="CURRENT_UNIT" value="Ratio (0 ≤ Decimal ≤ 1)"/>
        <where>MAI_RSLT_REF = 'PT' AND MAI_ID = '5023'</where>
</update>

在我的构建过程的cmd中,它看起来像这样:Ratio (0 ≤ Decimal ≤ 1)。 尽管在通过构建过程创建的我的SQL脚本中,它还是正确生成的:

UPDATE [MAI_THRESHOLD_DEF] 
SET [CURRENT_UNIT] = N'Ratio (0 ≤ Decimal ≤ 1)', [MAI_RSLT_NAME] = 'PTB Ratio' 
WHERE MAI_RSLT_REF = 'PT' AND MAI_ID = '5023'
GO

但是,由于构建过程已经通过CMD构建数据库,因此它已更新为我数据库中的Ratio (0 ≤ Decimal ≤ 1)。现在,即使我逃脱了,我仍然必须对SQL Server进行转义,因为也必须对SQL Server进行另一种转义,否则它将更新为Ratio (0 = Decimal = 1)而不是Ratio (0 ≤ Decimal ≤ 1)

在我的liquibase changelog xml文件中,是否有任何方法可以逃避CMD和SQL Server?抱歉,如果我用复杂的方式解释它,但我想不出如何轻松地描述它。

0 个答案:

没有答案