2012-07-26 60 views
0

這是我的查詢獲得一個錯誤「ORA-06502:PL/SQL:數字或值錯誤:字符串緩衝區太小」

begin 
       select ceq_specimens.numero as NUMERO, 
         analyseEffectuee.DESCRIPTION as analyseEffectuee 
       into out_rec.NUMERO_SPECIMEN3, out_rec.SPEC3_ANALYSE_EFFECTUE   
       from CEQ_FORMULAIRES_ANALYSES 
       inner join ceq_liste_choix analyseEffectuee on analyseEffectuee.ID_LISTE_CHOIX=CEQ_FORMULAIRES_ANALYSES.ID_ANALYSE_EFFECTUE 
       inner join ceq_specimens on ceq_specimens.ID_SPECIMEN=CEQ_FORMULAIRES_ANALYSES.ID_SPECIMEN and ceq_specimens.ID_SPECIMEN=vintIdSpecimen3 
       where CEQ_FORMULAIRES_ANALYSES.ID_FORMULAIRE=out_rec.ID_FORMULAIRE; 
      EXCEPTION 
      WHEN NO_DATA_FOUND THEN 
      out_rec.NUMERO_SPECIMEN3 := ' '; 
      out_rec.SPEC3_ANALYSE_EFFECTUE := ' '; 
      END;    

... 

IF analyseEffectuee.DESCRIPTION作爲analyseEffectuee =試樣不可能à分析器:更加精密恩評註(S)

我得到錯誤'字符串緩衝區太小」

IF analyseEffectuee.DESCRIPTION爲analyseEffectuee =非

沒有PROBL em在這種情況下

感謝您的幫助!

+3

「analyseEffectuee.DESCRIPTION」和「out_rec.SPEC3_ANALYSE_EFFECTUE」的類型和大小是什麼?如果我不得不猜測,我會說你有一個尺寸不匹配:收件人比內容小。 – 2012-07-26 15:15:05

回答

3

I get Error ''string buffer too small」 "

這也就意味着你的變量out_rec.SPEC3_ANALYSE_EFFECTUE是不是大到足以容納德價值Spécimen impossible à analyser: Préciser en commentaire(s)

定義PL/SQL變量的最佳方式是使用%TYPE關鍵字。這會創建一個與列的定義相匹配的變量。

你的代碼使用了一種叫做OUTREC的東西。你沒有給我們這個定義,這使得更難糾正你的特定問題,但也許你應該做這樣的事情。聲明它匹配你想要的輸出PL/SQL記錄類型,然後聲明類型的變量:

type my_rec_t is record (
    NUMERO_SPECIMEN1 ceq_specimens.numer%type, 
    SPEC1_ANALYSE_EFFECTUE analyseEffectuee.DESCRIPTION%type,   
    NUMERO_SPECIMEN2 ceq_specimens.numer%type, 
    SPEC2_ANALYSE_EFFECTUE analyseEffectuee.DESCRIPTION%type,   
    NUMERO_SPECIMEN3 ceq_specimens.numer%type, 
    SPEC3_ANALYSE_EFFECTUE analyseEffectuee.DESCRIPTION%type   
); 
out_rec my_rec_t; 

ORA-02303: cannot drop or replace a type with type or table dependents

因此,這意味着你使用SQL類型,與繼承。對此進行排序是一個問題。有一些我們可以使用ALTER TYPE命令的語法,它允許我們處理依賴類型。 Find out more.

+0

NUMERO_SPECIMEN3它的一個varchar(50),但[錯誤]編譯(1:1):ORA-02303:不能刪除或替換類型或表依賴的類型 – FrankSharp 2012-07-26 15:41:12

+0

我嘗試將其更改爲varchar250我得到[錯誤]編譯1:1):ORA-02303:不能刪除或替換具有類型或表格依賴項的類型 – FrankSharp 2012-07-26 15:42:25

相關問題