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

时间:2016-02-19 22:02:31

标签: quotes orientdb

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

  

“java.lang.IllegalStateException:缺少已关闭的字符串字符:'”',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的核心问题还是我没有正确转义字符串?

2 个答案:

答案 0 :(得分:1)

我正在尝试使用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吗?

答案 1 :(得分:1)

我已经尝试过2.1.2并且我没有例外

enter image description here

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

enter image description here

希望它有所帮助。