liquibase.exception.DatabaseException: ORA-00911: 无效字符 [失败 SQL: 删除 table $Y_USER_NAME}
liquibase.exception.DatabaseException: ORA-00911: invalid character [Failed SQL: drop table $Y_USER_NAME}
我正在尝试通过 liquibase 运行 sql 脚本,我设置了一个 属性 MY_USER_NAME 这样的
${MY_USER_NAME}
,但是当我尝试在我的 sql 文件中使用它时,当我 运行 liquibase 由于某种原因左括号被删除时,而不是评估我的 属性 它最终 $Y_USER_NAME}
我有我的主更新日志文件master.xml
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<include relativeToChangelogFile="true" file="changelogs.xml"/>
而我的 changelogs.xml 是
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<property name="MY_USER_NAME" value="LALA"/>
<include relativeToChangelogFile="true" file="TEST.sql"/>
</databaseChangeLog>
TEST.sql
drop table ${MY_USER_NAME};
我找到了我的问题的解决方案,以便在 sql 文件 sql 中评估的属性应该被包装而不包括在内。
所以
<include relativeToChangelogFile="true" file="TEST.sql"/>
这个应该用
<changeSet author="xxx" id="my changeSet" >
<sqlFile relativeToChangelogFile="true" encoding="utf8" path="TEST.sql"/>
</changeSet>
我正在尝试通过 liquibase 运行 sql 脚本,我设置了一个 属性 MY_USER_NAME 这样的
${MY_USER_NAME}
,但是当我尝试在我的 sql 文件中使用它时,当我 运行 liquibase 由于某种原因左括号被删除时,而不是评估我的 属性 它最终 $Y_USER_NAME}
我有我的主更新日志文件master.xml
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<include relativeToChangelogFile="true" file="changelogs.xml"/>
而我的 changelogs.xml 是
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<property name="MY_USER_NAME" value="LALA"/>
<include relativeToChangelogFile="true" file="TEST.sql"/>
</databaseChangeLog>
TEST.sql
drop table ${MY_USER_NAME};
我找到了我的问题的解决方案,以便在 sql 文件 sql 中评估的属性应该被包装而不包括在内。
所以
<include relativeToChangelogFile="true" file="TEST.sql"/>
这个应该用
<changeSet author="xxx" id="my changeSet" >
<sqlFile relativeToChangelogFile="true" encoding="utf8" path="TEST.sql"/>
</changeSet>