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

@Duze_p--o: No własnie próbowałem.

A propos goto. Miałem pytać. Lepiej używać goto czy else? Optymalizacyjne jak to wygląda?

@raffi74: Jak przepuści znaki spoza słownika to po co regexp?

Znalazłem babola. Regexp przepuszczał numer, który ma 4 litery na początku...
  • Odpowiedz
@kurazjajami: co do case sensitive mi chodziło o to, że jeżeli będziesz miał ciag aaa123456 oraz AAA123456 to regexp oba przepuści, ale jeden z nich zostanie uznany za niepoprawny i tu pytanie czy słusznie czy nie.
  • Odpowiedz
@kurazjajami: continue sprawia ze zaczynasz petle loop od nowa pomijając dalsze instrukcje.
pętlą lepiej sterowac używając break na jej zakończenie lub continue na pominięcie dalszych analiz
  • Odpowiedz
@kurazjajami: Jak masz taki błąd i nie przerabiasz milionów wartości to po prostu wyrzuć sobie wartość, która powoduje błąd na ekran.

Albo dajesz outputa przed linią z błędem i ostatni output będzie Twoim niepoprawnym, albo walisz każdą do zmiennej i na exceptionie wywalasz ostatnią zmienną.

To tak chyba najszybszy sposób, żeby takie błędy wyłapywać :)
  • Odpowiedz
@mpisz: problem w tym właśnie był, że jest ponad 6 milionów rekordów...

a z tymi outputami próbowałem, ale przy tylu rekordach bufor mi wysiadał, a jak za bardzo go zwiększałem to się sypał plssql dev
  • Odpowiedz
@kurazjajami: w ogóle nie używaj GOTO, nie używaj dwu-trzy literowych nazw zmiennych, nie używaj polskich nazw zmiennych i nie wiem po co Ci podkreślenie po nazwach.. to tęż średnio wygląda IMO :)
  • Odpowiedz