Wpis z mikrobloga

#sql #oracle #plsql

Wyżej w zapytaniu nad LR i LB wybieram zapytaniem wygenerowane pesele. Wszystko elegancko w kursorze. Generalnie chcę pokazać ile jest błędnych (LB - błędny format, zła suma kontrolna) i wszystkich (LR - na dole) peseli. Wszystko się odpala, ładnie liczy dla 100, 1000, 10000 rekordów, ale jak puszczę to na całej bazie to wywala mi błąd po jakimś czasie:

ORA-06502 PL/SQL: błąd liczby lub wartości: charcter to number conversion error
ORA-06512: przy linia

Próbowałem wszystkiego i nie mam pomysłu...
kurazjajami - #sql #oracle #plsql


Wyżej w zapytaniu nad LR i LB wybieram zapytan...

źródło: comment_zLczeqbOrXseF2CIVQgkGHUUKvSuB0xD.jpg

Pobierz
  • 25
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kurazjajami: No to dajesz każdy rekord do zmiennej w loopie i zmienna trzyma ten zły rekord i wyświetli go w EXCEPIONIE.
Coś takiego:
LOOP
lvzmienna := loop(i)
linia z
  • Odpowiedz
konto usunięte via Wykop Mobilny (Android)
  • 1
@kurazjajami: Poczytaj sobie o pętlach kursorowych bo są wygodniejsze (nie trzeba otwierać, same się zamykają również przy błędzie). Dodatkowo do przetwarzaniu dużej liczby rekordów możesz zaznajomić się z konstrukcją BULK COLLECT. Nigdy nie korzystaj z goto.
  • Odpowiedz