0

XMLTYPE 列に次のような XML があります。

<n:ROOT xmlns:app="http://company/acms/content/DocType" xmlns:n="http://company/acms/content/DocType">
   <Content>
      <Definition>
         <Code>DocType</Code>
         <Version>1</Version>
      </Definition>
      <DocType>
         <Info>
            <DocumentType>DocType</DocumentType>
            <DocumentClass>Other</DocumentClass>
            <CustomerID>12323423</CustomerID>
            <FinancialAccountID>12312312</FinancialAccountID>
            <MSISDN>34534534</MSISDN>
            <CustomerType>Consumer</CustomerType>
            <CustomerSubType>Consumer-Platinum</CustomerSubType>
            <FirstName>Name</FirstName>
            <ServiceType>ServiceType</ServiceType>
            <DocumentSource>BadValueHere</DocumentSource>
            <BoxReferenceNumber>BoxXXX</BoxReferenceNumber>
            <Industry>OTHERS</Industry>
            <CreationDate>2015-01-01</CreationDate>
            <DocumentID>6666</DocumentID>
            <CreatedBy>UBIX</CreatedBy>
            <DocumentOrigin>HD</DocumentOrigin>
            <Notes>Document location on File System: /path/to/doc.TIF</Notes>
            <Resource parseType="none">
               <URL>/path/filename.pdf</URL>
               <FileName>filename.pdf</FileName>
               <MimeType>image/tiff</MimeType>
            </Resource>
            <FileType>tiff</FileType>
         </Info>
         <Permissions>
            <GroupPermissions>
               <GroupName>99</GroupName>
               <Permissions>C</Permissions>
            </GroupPermissions>
            <GroupPermissions>
               <GroupName>30</GroupName>
               <Permissions>W</Permissions>
            </GroupPermissions>
            <GroupPermissions>
               <GroupName>66</GroupName>
               <Permissions>R</Permissions>
            </GroupPermissions>
         </Permissions>
      </DocType>
   </Content>
</n:ROOT>

ここで、DocumentSource 要素を新しい値に更新する必要があります。

次のクエリを試しました。

SET CONTENT_DATA =  UPDATEXML(CONTENT_DATA,
   '/n:ROOT/Content/DocType/Info/DocumentSource/text()', 'Test')
where CONTENT_ID=6666;

ただし、実行しようとすると、Oracle エラーが発生します: SQL エラー: ORA-31013: 無効な XPATH 式 31013. 00000 - "無効な XPATH 式" *原因: 関数に渡された XPATH 式が無効です。*処置: 考えられる構文エラーがないか、xpath式を確認してください。

UpdateXML のドキュメントは次の場所にあります: https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions205.htm 名前空間を指定するための 5 番目の要素について説明していますが、うまく機能させることができませんでした: (Googleの私のシナリオでそれを使用する方法の例はまったくありません...

専門家が助けてくれますか?

4

1 に答える 1

0

xpath を試してみてください://Content/DocType/Info/DocumentSource/text()

于 2016-11-07T20:52:38.097 に答える