我已经使用Mysql作为关系数据库( Mysql版本:8.0.13 )安装了Orbeon Forms 2018.1.1 CE。
尽管我可以创建,保存和发布任何表单,但是当我尝试访问表单摘要时,却出现“执行搜索错误”错误。每当我尝试使用页面上部的“搜索表单”控件在摘要页面上搜索表单时,也会显示相同的错误。
除此之外,尽管数据库中的相关表包含适当的记录,但是摘要页面始终为空。该应用程序在 Apache Tomcat(8.5.35)上运行,并使用 mysql-2017_2.sql脚本 创建了数据库。 >
我还检查了orbeon.log文件,发现以下条目:
发生错误
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本以获取正确的语法 在第12行的
row_number FROM orbeon_i_current c, (select @rownum := 0) r
附近使用应用程序调用堆栈
oxf:/apps/fr/page-flow.xml
读取页面浏览数据输出46
element =
<service path="/fr/service/(oracle|mysql|postgresql|db2|sqlserver)/search/([^/^.]+)/([^/^.]+)" view="persisten view
= persistence / relational / search.xploxf:/apps/fr/persistence/relational/search.xpl
读取处理器输出22
element =
<p:output name="data" ref="data"/>
名称=数据
ref =数据
我想知道摘要页面是否还有其他必需的配置才能正常工作。
使用P6Spy应用程序,我已经意识到以下查询似乎是导致错误消息的原因:
SELECT count(*)
FROM (
SELECT c.data_id,
c.document_id,
c.draft,
c.created,
c.last_modified_time,
c.last_modified_by,
c.username,
c.groupname,
c.organization_id,
@rownum := @rownum + 1 row_number
FROM orbeon_i_current c
, (select @rownum := 0) r
WHERE c.app = 'DemoApp' AND
c.form = 'DemoForm'
AND c.draft = 'N'
) a
实际上,问题可能出在该行中: @rownum:= @rownum + 1 row_number
MySQL从8.0版开始引入了窗口函数 ROW_NUMBER(),在这一行中,sql引擎将文字“ row_number”转换为函数。