Guest User

Untitled

a guest
May 20th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. Ahoj,
  2. tak jsem procházel tu #836.
  3. Ve zkratce.
  4. Jde o prackage B2BG_TRANSFER_ACT2CAT;
  5. konrétně metodu P_CHECK_VALIDITY_OF_CONFIRMED;
  6. ovšem chyba se dá nalést i na metodě P_TRANSFER_VALID;
  7.  
  8. obě dvě totiž volají pod proceduru P_TRANSFER_ARTICLECARDCOLLECT
  9.  
  10. problém dělá tento kód:
  11. select * into r_artCollectionDst from B2BT_T_CATARTICLECOLLECTION catCol
  12. where catCol.ARTICLECARD_ID = n_catAcId;
  13.  
  14. proč dělá problém? :
  15. protože se snaží do r_artCollectionDst B2BT_T_CATARTICLECOLLECTION%rowtype; nakopírovat něco, co řádek není. Je tam více než jeden záznam. (Jako výskedek dotazu)
  16.  
  17. proč je t am více než jeden záznam ?
  18. protože pokud pro cursor c_articleCollection(n_acId B2BT_T_ACTARTICLECARD.id%type) is
  19. select * from B2BT_T_ACTARTICLECOLLECTION col where col.aarticlecard_id = n_actAcId;
  20. vyjde pro stejné n_actAcId více záznamů, tak se odehraje následující.
  21.  
  22. Kupříkladu takhle:
  23. vznikne výjimka no data found --> takže vytvoříme data do B2BT_T_CATARTICLECOLLECTION;(řádek 286) (insertne kupříkladu tři řádky pro aarticlecard_id = 4914)
  24. no a poté protože stejné id máme minimálně ještě jednou v c_articleCollection.
  25.  
  26. tak select * into r_artCollectionDst from B2BT_T_CATARTICLECOLLECTION catCol
  27. where catCol.ARTICLECARD_ID = n_catAcId; se snaží nakopírovat více než řádek(3 řádky) do jednoho řádku. Což žpůsobí přiloženou chybu na ticketu.
  28.  
  29.  
  30. ------------------------------------------
  31.  
  32. Zítra si s vámi dám ještě meeting na 9tou a ještě to nějak povysvětlím osobně.
  33.  
  34. Petr N
Add Comment
Please, Sign In to add comment