请教下各位前辈,我使用sql查询xmltype类型的字段,可就是没返回结果,而使用参考文档执行类似的查询都能获得正确的数据,不知是什么原因呢?
我使用的sql:
create table topics(report_id NUMBER,profile XMLTYPE);insert into topics(report_id,profile)  select report_id,XMLTYPE(profile) from config_data where report_id=65;
commit;执行该插入后,将插入CLOB字段值:‘<Report DisplayType="std" NocTimeFrame="" RefreshInterval="0" forwardTo="/MyTopaz/1/Report_65.jsp" id="Report_65" name="监控报告" reportTitle="系统监控报告" type="forward"><DataView_1 bbFlags="1" bbName="Daily Mail Multi Data Block" bbTitle="性能概要" category="dataviews.category.performance-update" checkIfToIgnoreExtremeValues="true" className="com.mercury.topaz.reportsExt.customreport.SubReportDefinition" dataViewKeyName="dataviews.key.name.alert.total.count" dimesionsGroup="1" media="media.table" profileType="1" subId="13" title="性能概要" width="wide">
<!--<MultiDataView bbName="Daily Mail Multi Data Block" bbFlags="1">-->
  <!-- 1.Alerts  2.Availability,Total trans,Failed,Timed Out-->
  <!-- Alerts total count-->
  <DataView bbFlags="1" bbName="Alerts By Severity" profileType="1">
  <BreakDownFilters>
   <!-- Breakdown by Transaction -->
   <BreakDown id="2"/>
  </BreakDownFilters>
  <InputData>
   <XAxis action="remove"/>
   <Measurement action="remove"/>
  <ProfileFilter ProfileId="202" action="replace" selected="yes"/>
    </InputData>
  <DimensionGroups>
  <DimensionGroup>1</DimensionGroup>
  </DimensionGroups>
  </DataView>
  <!-- Alerts critical severity-->
  <DataView bbFlags="1" bbName="Alerts By Severity" profileType="1">
  <InputData>
   <XAxis action="remove"/>
   <Measurement action="replace" dimension_name="AlertSeverity" selected="yes"/>
   <!-- only with critical severity -->
     <DiscreteFilter action="add" dimension_name="AlertSeverity" selected="yes">
    <DiscreteData>50</DiscreteData>
     </DiscreteFilter>
  <ProfileFilter ProfileId="202" action="replace" selected="yes"/>
  CONTINUOUS_FILTERS_TO_1
  </InputData>
  <DimensionGroups>
  <DimensionGroup>1</DimensionGroup>
  </DimensionGroups>
  </DataView>
  <!-- server availability with timed out,failed and total-->
  <DataView bbFlags="1" bbName="Daily Mail Server Avalability" checkIfToIgnoreExtremeValues="true">
  <InputData>
   <XAxis action="remove"/>
   <Measurement action="remove"/>
  <ProfileFilter ProfileId="202" action="replace" selected="yes"/>
  CONTINUOUS_FILTERS_TO_1
  </InputData>
  <DimensionGroups>
  <DimensionGroup>1</DimensionGroup>
  </DimensionGroups>
 </DataView>
 <!-- order: Alert Total,Alert Total Critical,Total Transactions-->
  <Table_1 firstCell="false" order="ServiceAvailability,Total,Total2,Failed,TimedOutTotal" resourceKey="s_daily_mail" type="mailSummary">
  <Properties>
    <Property name="width" value="600"/>
    <Property columnName="ServiceAvailability" name="class" value="mailReportTotal"/>
    <Property columnName="Total" name="class" value="mailReportTotal"/>
    <Property columnName="Total2" name="class" value="mailReportTotalBold"/>
    <Property columnName="Failed" name="class" value="mailReportTotal"/>
    <Property columnName="TimedOutTotal" name="class" value="mailReportTotal"/>
    <Property columnName="TimedOutTotal" name="filterOut" value="externalValues"/>
    <Property allCells="yes" name="align" value="left"/>
  </Properties>
  <Integers intKeyValues="Total,Total2,Failed,TimedOutTotal"/>
  </Table_1>
</DataView_1><DataView_2 bbFlags="1" bbName="Overall Performance of Locations in Mail report" bbTitle="位置的性能" category="dataviews.category.performance-update" checkIfToIgnoreExtremeValues="true" className="com.mercury.topaz.reportsExt.customreport.SubReportDefinition" dataViewKeyName="dataviews.key.name.perform.location" dimesionsGroup="1" media="media.table" profileType="1" subId="15" title="位置的性能" width="wide">
  <BreakDownFilters>
   <!-- Breakdown by Location -->
   <BreakDown id="3"/>
  </BreakDownFilters>
  <InputData>
    <XAxis action="remove"/>
    <Measurement action="replace" dimension_name="LocationName" selected="yes"/>
  <ProfileFilter ProfileId="202" action="replace" selected="yes"/>
  
  </InputData>
  <DimensionGroups>
    <DimensionGroup>1</DimensionGroup>
  </DimensionGroups>
  <Table_2 firstCell="false" order="LocationName,Good,Warning,Poor,Failed,Total,TimedOutTotal" resourceKey="dailyMail" type="IgnoreExtremeValuesTable">
    <Properties>
    <Property name="width" value="600"/>
    <Property columnName="LocationName" name="width" value="40%"/>
    <Property columnName="Good" name="width" value="10%"/>
    <Property columnName="Warning" name="width" value="10%"/>
    <Property columnName="Poor" name="width" value="10%"/>
    <Property columnName="Failed" name="width" value="10%"/>
    <Property columnName="Total" name="width" value="10%"/>
    <Property columnName="TimedOutTotal" name="width" value="10%"/>
    <Property columnName="LocationName" name="class" value="mailReportTransLocName"/>
    <Property columnName="Good" name="class" value="mailReportGood"/>
    <Property columnName="Warning" name="class" value="mailReportWarning"/>
    <Property columnName="Poor" name="class" value="mailReportPoor"/>
    <Property columnName="Failed" name="class" value="mailReportFailed"/>
    <Property columnName="Total" name="class" value="mailReportTotal"/>
    <Property columnName="TimedOutTotal" name="class" value="mailReportTimedOut"/>
    <Property columnName="Good" pattern="@ %"/>
    <Property columnName="Warning" pattern="@ %"/>
    <Property columnName="Poor" pattern="@ %"/>
    <Property columnName="Failed" pattern="@ %"/>
    <Property columnName="TimedOutTotal" pattern="@ %"/>
    <Property columnName="TimedOutTotal" name="filterOut" value="externalValues"/>
    </Properties>
  </Table_2>
  </DataView_2><DataView_3 bbFlags="1" bbName="Service Availability over Time" bbTitle="可用性" category="dataviews.category.performance-update" checkIfToIgnoreExtremeValues="true" className="com.mercury.topaz.reportsExt.customreport.SubReportDefinition" dataViewKeyName="dataviews.key.name.overall.trans.avail" dimesionsGroup="1" media="media.table" profileType="1" subId="11" title="可用性" width="wide">
  <BreakDownFilters>
   <!-- Breakdown by Transaction -->
   <BreakDown id="2"/>
  </BreakDownFilters>
  <InputData action="overrideAttributes" completion="yes">
   <XAxis action="remove"/>
   <Measurement action="overrideAttributes" complete_with="TransDescription" dimension_name="TopazTransaction" matchAttributes="dimension_name" matchBy="attribute"/>
  <ProfileFilter ProfileId="202" action="replace" selected="yes"/>
  
  </InputData>
  <DimensionGroups>
  <DimensionGroup>1</DimensionGroup>
  </DimensionGroups>
  <Table_3 firstCell="false" order="TopazTransaction Name,ServiceAvailability,TransDescription" resourceKey="dailymail.serv.avail" type="simpleTable">
  <Properties>
  <Property name="width" value="600"/>
    <Property columnName="TopazTransaction Name" name="width" value="30%"/>
    <Property columnName="ServiceAvailability" name="width" value="10%"/>
    <Property columnName="TransDescription" name="width" value="60%"/>
    <Property columnName="TopazTransaction Name" name="class" value="mailReportTransLocName"/>
    <Property columnName="ServiceAvailability" name="class" value="mailReportAvgResponseTime"/>
    <Property columnName="TransDescription" name="class" value="mailReportTotal"/>
    <Property columnName="ServiceAvailability" pattern="@ %"/>
    </Properties>
    <LimitStrings>
      <LimitString fixLengthTo="50" keyName="TransDescription" type="Column"/>
      <LimitString fixLengthTo="40" keyName="TopazTransaction Name" type="Column"/>
    </LimitStrings>
  </Table_3>
 </DataView_3><NavBar>
    <Component name="StepDiv"/>
    <Component hideNavBar="false" left="0" name="TimeFrameDiv" top="0">
      <ComboObject left="" name="TimeFrameCombo" top="">
        <ComboItem key="NavBar.TimeFrame.Hour" value="Hour"/>
        <ComboItem key="NavBar.TimeFrame.Day" value="Day"/>
        <ComboItem key="NavBar.TimeFrame.Week" value="Week"/>
        <ComboItem key="NavBar.TimeFrame.Month" value="Month"/>
        <ComboItem key="NavBar.TimeFrame.Quarter" value="Quarter"/>
        <ComboItem key="NavBar.TimeFrame.Year" value="Year"/>
        <ComboItem key="NavBar.TimeFrame.LastHour" value="LastHour"/>
        <ComboItem key="NavBar.TimeFrame.LastDay" value="LastDay"/>
        <ComboItem key="NavBar.TimeFrame.LastWeek" value="LastWeek"/>
        <ComboItem key="NavBar.TimeFrame.LastMonth" value="LastMonth"/>
        <ComboItem key="NavBar.TimeFrame.LastQuarter" value="LastQuarter"/>
        <ComboItem key="NavBar.TimeFrame.LastYear" value="LastYear"/>
      </ComboObject>
    </Component>
  </NavBar><Footer></Footer><Header></Header><SeperatePages><![CDATA[true]]></SeperatePages></Report>接着执行查询:select report_id,extract(profile,'/Report/DataView[1]/InputData/ProfileFilter/@ProfileId')
     from topics where report_id=65;执行查询时,出现以下错误:
         OCI-21500: 内部错误代码, 参数: [58], [], [], [], [], [], [], []
         OCI-21500: 内部错误代码, 参数: [kghfrh:ds], [0x6412808], [], [], [], [], [], []
而执行下面这个查询,则extract函数返回空值:
select report_id,extractValue(profile,'/Report/DataView[1]/InputData/ProfileFilter/@ProfileId')
     from topics where report_id=65;最后,我把里面profile字段值的内容删减去DataView_i部分的内容后,再执行上面的extractValue才返回正确的答案。请问这是怎么回事呢?