我正在使用MarkLogic 9并遵循有关SQL数据模型指南(https://docs.marklogic.com/guide/sql/intro)的教程,满足前提条件:
直到我创建模板视图(https://docs.marklogic.com/guide/sql/setup#id_14127)当我在查询控制台中执行语句时出现以下错误:
[1.0-ml] SVC-FILOPN: File open error: open '/MarkLogic/tde.xqy': No
such file or directory
Stack Trace
At line 2 column 0:
In xdmp:eval("xquery version "1.0-ml"; import module namespace ...", (), <options xmlns="xdmp:eval"><database>18182129315596444747</database>...</options>)
1. xquery version "1.0-ml";
2. import module namespace tde = "http://marklogic.com/xdmp/tde"
3. at "/MarkLogic/tde.xqy";
MarkLogic的文件放在./opt/MarkLogic文件夹中,目录中包含以下内容
erik@marklogic-vm /opt/MarkLogic $ ls -l
total 460
drwxr-xr-x 5 root root 53248 Apr 14 19:40 Admin
drwxr-xr-x 15 root root 4096 Apr 14 19:40 Apps
drwxr-xr-x 4 root root 4096 Apr 14 19:40 Assets
drwxr-xr-x 2 root root 4096 Apr 14 19:40 bin
drwxr-xr-x 3 root root 20480 Apr 14 19:40 Config
drwxr-xr-x 5 root root 4096 Apr 14 19:40 Converters
drwxr-xr-x 2 root root 4096 Apr 14 19:40 Docs
drwxr-xr-x 3 root root 4096 Apr 14 19:40 FlexRep
-rw-r--r-- 1 root root 35147 Apr 11 09:08 GPL.txt
drwxr-xr-x 2 root root 4096 Apr 14 19:40 HealthCheck
drwxr-xr-x 2 root root 4096 Apr 14 19:40 include
drwxr-xr-x 12 root root 4096 Apr 14 19:40 Installer
drwxr-xr-x 3 root root 4096 Apr 14 19:40 java
drwxr-xr-x 2 root root 12288 Apr 14 19:40 Lang
-rw-r--r-- 1 root root 250564 Apr 11 09:08 LEGALNOTICES.txt
-rw-r--r-- 1 root root 18416 Apr 11 09:08 LGPL21.txt
-rw-r--r-- 1 root root 7639 Apr 11 09:08 LGPL30.txt
drwxr-xr-x 2 root root 4096 Apr 14 19:40 lib
drwxr-xr-x 2 root root 4096 Apr 14 19:40 Messages
drwxr-xr-x 7 root root 4096 Apr 14 19:40 mlcmd
drwxr-xr-x 3 root root 4096 Apr 14 19:40 Modules
drwxr-xr-x 2 root root 4096 Apr 11 09:58 Plugins
drwxr-xr-x 8 root root 4096 Apr 14 19:40 Samples
你知道出了什么问题吗?
曼尼谢谢
埃里克
答案 0 :(得分:2)
感谢所有的帮助和反应。似乎我之前有MarkLogic的版本,TDE尚未得到支持。我完全删除了ML并安装了ML 9.0 XX
xquery version "1.0-ml"; import module namespace tde = "http://marklogic.com/xdmp/tde" at "/MarkLogic/tde.xqy"; let $employees := <template xmlns="http://marklogic.com/xdmp/tde"> <context>/Employee</context> <rows> <row> <schema-name>main</schema-name> <view-name>employees</view-name> <columns> <column> <name>EmployeeID</name> <scalar-type>int</scalar-type> <val>ID</val> </column> <column> <name>FirstName</name> <scalar-type>string</scalar-type> <val>FirstName</val> </column> <column> <name>LastName</name> <scalar-type>string</scalar-type> <val>LastName</val> </column> <column> <name>Position</name> <scalar-type>string</scalar-type> <val>Position</val> </column> </columns> </row> </rows> </template> return tde:template-insert("/employees.xml", $employees)
如果在SQLSchema数据库中运行它,它将不起作用。
答案 1 :(得分:2)
tde:template-insert()
函数时,请确保选择了“内容”数据库(在您的情况下这将是SQLData)而不是SQLSchema数据库。对SQLData数据库执行template-insert()
函数会将模板插入SQLSchema数据库。
另外,请确保您的SQLData数据库具有与之关联的SQLSchema数据库。
我们MarkLogic也刚刚发布了一个关于所有新MarkLogic 9功能的4小时自学课程 - 包括TDE。请看一下 - http://www.marklogic.com/training-courses/whats-new-marklogic-9/ - 它肯定会帮助您快速了解数据库的最新增加内容。 (您也可以在课程结束时完成评估。)