创建TDE Marklogic时不支持列名中的点
我们正在将csv数据导入marklogic。有些列的名称中有一个点(.)。它被很好地加载到MarkLogic中(与点一起) 但是,当我们创建TDE模板以创建视图时,不接受点。向我抛出以下错误:创建TDE Marklogic时不支持列名中的点,marklogic,Marklogic,我们正在将csv数据导入marklogic。有些列的名称中有一个点(.)。它被很好地加载到MarkLogic中(与点一起) 但是,当我们创建TDE模板以创建视图时,不接受点。向我抛出以下错误: [1.0-ml] TDE-INVALIDTEMPLATE: (err:FOER0000) Invalid TDE template: TDE-INVALIDSQLNAMENODE: Invalid SQL object name: "DataType." for /tde:template/tde:row
[1.0-ml] TDE-INVALIDTEMPLATE: (err:FOER0000) Invalid TDE template: TDE-INVALIDSQLNAMENODE: Invalid SQL object name: "DataType." for /tde:template/tde:rows/tde:row/tde:columns/tde:column[3]/tde:name
我可以用下划线替换点,但我正在寻找其他建议。在tde.xsd中,名称的定义如下:
<xs:simpleType name="name">
<xs:annotation>
<xs:documentation>
A generic name type.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NCName">
<xs:minLength value="1"/>
<xs:pattern value="[^.\-\p{Z}]+"/>
</xs:restriction>
</xs:simpleType>
泛型名称类型。
也就是说,列名中不允许有点。
您可以在MarkLogic安装目录中的Config/tde.xsd
中找到xsd
我建议您在列名中用下划线或大小写替换点。谢谢。这很有帮助。我想知道当它作为一个xml元素被很好地允许时,为什么会受到这样的限制。我应该把它作为一个bug来提吗?我认为它们应该支持dots,因为在sql中也可以使用dots。因此,是的,提出一个bug/feature请求。