2015-06-08 9 views
0

我tryed以檢索XML數據變量,但給我的錯誤說「標識符‘extractValue一起’必須是declaredCompilation失敗」標識符「extractValue一起」必須declaredCompilation失敗

VarConverstionFact NUMBER; 
BEGIN 

    VarConverstionFact := TO_NUMBER(ExtractValue(PXML, '/OBJECT/Item/ItemUomLevelsList/ItemUomLevels/ConversionFactor')); 

    IF VarConverstionFact > 0 THEN 

     SELECT BIZZXE_V2_SCH.SQ_ITEM_ID.NEXTVAL INTO varID FROM DUAL; 
     END IF; 
END; 

這是保存XML節點

<Item> 
<LocationId>0</LocationId> 
<Id>0</Id> 
<ItemId>0</ItemId> 
<ItemCode>SC12</ItemCode> 
<ItemDescription>SCDITEM</ItemDescription> 

<ItemUomLevelsList> 
    <ItemUomLevels> 
    <UomLevelId>1</UomLevelId> 
    <UomId>9</UomId> 
    <UomLongName>LG</UomLongName> 
    <ConversionFactor>-53</ConversionFactor> 
    <UomLevelStatus>1</UomLevelStatus> 
    <UomLevelSystemUsageTypeId>2</UomLevelSystemUsageTypeId> 
    <UomLevelImage>0</UomLevelImage> 
    <UomLevelControlsList> 
     <UomLevelControls> 
     <ControlId>2</ControlId> 
     </UomLevelControls> 
    </UomLevelControlsList> 
    <UomDimensionsList> 
     <UomDimensions> 
     <DimensionId>14</DimensionId> 
     <DimensionValue>12</DimensionValue> 
     </UomDimensions> 
     <UomDimensions> 
     <DimensionId>12</DimensionId> 
     <DimensionValue>13</DimensionValue> 
     </UomDimensions> 
    </UomDimensionsList> 
    </ItemUomLevels> 
</ItemUomLevelsList> 

當我試圖插入我越來越沒有數據錯誤,當我把VarConverstionFact = 0,如果我VarConverstionFact = -53我收到無效號碼錯誤。

select to_number(ExtractValue(PXML, '/OBJECT/Item/ItemUomLevelsList/ItemUomLevels/ConversionFactor')) 

INTO VarConverstionFACT FROM DUAL;

我用這個後我得到這個作爲一個答案我的包是沒有錯誤遵守,但當我嘗試將上面的XML,我得到的錯誤是前面提到(以上)

回答

1

extractValue一起不是PLSQL功能,並且只能用作我認爲的SQL語句的一部分。

你可以做兩種:

select to_number(ExtractValue(PXML, '/OBJECT/Item/ItemUomLevelsList/ItemUomLevels/ConversionFactor')) 
INTO VarConverstionFact FROM DUAL; 

VarConverstionFact := PXML.extract('/OBJECT/Item/ItemUomLevelsList/ItemUomLevels/ConversionFactor').getNumberVal(); 

編輯:我假設PXML是XMLTYPE

+0

{「ORA-01722:無效數字\諾拉-06512:在\「SYS.XMLTYPE \」,行181 \ nORA-06512:在\「BIZZXE_V2_SCH.ITEM \」,行165 \ nORA-06512:在行1「} 當我使用該代碼時出現此錯誤 – Beez

+0

是價值你試圖提取絕對數字?這種例外情況表明,您試圖存儲爲數字的值實際上不是數字。空格或其他字符可能導致問題。 – Chrisrs2292

+0

是它的編號我從xml得到它 – Beez

相關問題