尝试使用分号和引号更新字符串时,我遇到了奇怪的错误。例如,以下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的核心问题还是我没有正确转义字符串?
答案 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)