在 orientdb 更新操作中转义分号和引号

Escaping semicolon and quotes in orientdb update operation

我 运行 在尝试使用分号和引号更新字符串时遇到奇怪的错误。例如,以下 sql 失败并显示错误:

"java.lang.IllegalStateException: Missing closed string character: '"', position: 64:

UPDATE #26:185 SET description = "<div style=\"text-align: right;\">Text</div>";

但是,如果删除“;”,sql 有效:

UPDATE #26:185 SET description = "<div style=\"text-align: right\">Text</div>";

此外,如果删除转义引号,但保留 ';',sql 有效:

UPDATE #26:185 SET description = "Text;";

这是 orientdb 的核心问题还是我没有正确转义字符串?

我正在尝试使用 OrientDB 2.1.11 版本

结构:

create class MyClass extends V
create property MyClass.description string
create vertex MyClass set description = "Text"

MyClass 数据集:

select from MyClass

----+-----+-------+-----------
#   |@RID |@CLASS |description
----+-----+-------+-----------
0   |#12:0|MyClass|Text
----+-----+-------+-----------

现在我用您的第一个更新查询更新记录 #12:0

UPDATE #12:0 SET description = "<div style=\"text-align: right;\">Text</div>";

Updated record(s) '1' in 0,032000 sec(s).

已更新 MyClass 数据集

select from MyClass

----+-----+-------+------------------------------------------
#   |@RID |@CLASS |description
----+-----+-------+------------------------------------------
0   |#12:0|MyClass|<div style="text-align: right;">Text</div>
----+-----+-------+------------------------------------------

应该是后续版本已经解决了,能不能用最新稳定版的OrientDB试试?

我试过使用 2.1.2,没有你的例外

UPDATE #13:0 SET description = "<div style=\"text-align: right;\">Text</div>"

希望对您有所帮助。