Błąd Oracle 17132 Łatwe Rozwiązanie Naprawcze

Warto postępować zgodnie z tymi wskazówkami dotyczącymi naprawy, jeśli umieszczasz na komputerze wskazówki dotyczące błędu Oracle Error 17132.

Czy Twój komputer działa wolno i wolno? Czy nękają go tajemnicze komunikaty o błędach i awarie? Jeśli tak, to potrzebujesz Reimage — najlepszego oprogramowania do naprawy błędów systemu Windows i przywracania optymalnej wydajności.

Próbuję uzyskać moje id ostatniego wiersza dotyczącego insertu za pomocą zestawień przygotowanych przez JDBC. Mam auto-pierwotny promień przyrostowy jako kolumnę identyfikacyjną w tej po prostu szufladzie. Mój kod znajduje się poniżej:

  publiczny ciąg statyczny insertMeetingToDB (organizator wiersza, temat wiersza, lokalizacja wiersza, wiersz data_początkowa_godzina, wiersz godzina_końcowa_godzina, opis wiersza) zawiera wyjątek    Połączenie Db = null;    PreparedStatement PreparedStatement wynosi zero;    Liczba całkowita last_inserted_id = 0;Linia telefoniczna insertTableSQL odpowiada "WSTAWIĆ W SPOTKANIA".                   + "(ORGANIZER_EMAIL, TEMAT, MEETING_LOCATION, START_DATE_TIME, END_DATE_TIME, MEETING_DESCRIPTION) WARTOŚCI"                   + "(?,?,?,?,?,?)";SimpleDateFormat from = SimpleDateFormat ("rrrrMMdd'T'GGmmss");z new.setTimeZone (TimeZone.getTimeZone ("EST")); // - KONWERSJA DATY / CZASU NA CZAS STANDARDOWY INDIISimpleDateFormat datetimeFormat = SimpleDateFormat ("rrrr-MM-dd 'ostatnio zakupione' GG:mm:ss");Data input_start_date_val oznacza from.parse (start_date_time);Input_end_date_val data spełnia od.parse (end_date_time);Wiersz input_start_date = datetimeFormat.format (input_start_date_val);Ciąg input_end_date oznacza datetimeFormat.format (input_end_date_val);Próbować        dbConnection równa się getConnection ();        // - WSTAW SZCZEGÓŁY SPOTKANIA        PreparedStatement implikuje dbConnection.prepareStatement (insertTableSQL, PreparedStatement.RETURN_GENERATED_KEYS);        PreparedStatement.setString (1, organizator);        PreparedStatement.setString (2, temat);        PreparedStatement.setString (3, lokalizacja);        PreparedStatement.setTimestamp (4, java.sql.Timestamp.valueOf (input_start_date));        PreparedStatement.setTimestamp (5, java.sql.Timestamp.valueOf (data_końcowa_wejściowa));        PreparedStatement.setString (6, opis);        // Wykonaj instrukcję SQL Afix        PreparedStatement.executeUpdate ();        Urs zestawu wyników równa się PreparedStatement.getGeneratedKeys ();       Jeśli (rs.next ())                    last_inserted_id to rs.getInt (1);                cofnij last_inserted_id.toString (); uwaga (SQLException e)        zwraca e.getMessage () + "KOD BŁĘDU:" + e.getErrorCode (); rozbić        załóżmy (przygotowane oświadczenie! = zero)                GotoweWyrażenie.zamknij ();                być może (dbPołączenie! = zero)                dbPołączenie.zamknij ();                połączenie z bankiem danych = zero;           

Jeśli oderwę tę linię, nie wywołam tego błędu:

Błąd Oracle w ocenie 17132

  last_inserted_id Rs równa się .getInt (1); 

Ale od razu wyszukiwarka google wygląda dobrze i zawiera ten kod, jeśli zwraca ostatnio wstawiony identyfikator wiersza.

  UTWÓRZ SPOTKANIA BIURKOWE (  NUMER MEETING_ID JEST ZAWSZE TWORZONY JAKO INDYWIDUALNY,  ORGANIZER_EMAIL VARCHAR2 (100),  TEMATYCZNY VARCHAR2 (250),  START_DATE_TIME TIMESTAMP,  END_DATE_TIME TIMESTAMP,  LISTA UCZESTNIKÓW_ WIEDZA POUFNA К (1),  PARTICIPANTS_CONF_CONFIDENTIAL CHAR (1),  PARTICIPANT_COUNT_INTERNE NUMBER (11),  PARTICIPANT_COUNT_EXTERNAL NUMBER (11),  CONFIRMED_COUNT_INTERNE NUMER (11),  CONFIRMED_COUNT_EXTERNE NUMER (11),  NUMBER PREVIOUS_MEETING_ID (20),  RENDEZ-VOUS_SOURCE CHAR (1),  MEETING_LOCATION VARCHAR (100),  LISTWA PŁYWACKI (10),  SPŁAWIKI DŁUGIE (10), MEETING_DESCRIPTION VARCHAR2 (1000),  KLUCZ PODSTAWOWY (MEETING_ID)); 

Mam problem z aplikacją zbudowaną przy użyciu Java 8, Spring 5, Hibernate 5.4.8 na bazie Oracle Database 18c.

Mówiąc o konfiguracji rdzenia, bazy danych: używam osobno klasy oracle.jdbc.OracleDriver i języka org.hibernate.dialect.Oracle12cDialect używając ojdbc8 v.18.3.0.0


Jednostka podstawowa

Błąd Oracle 17132

Jak wyraziłem się w tytule każdego tematu i na początku będę miał problem, że dokładam wszelkich starań, aby wstawić

adres

Podmiot. Błąd, który otrzymuję, to cudowna niedopuszczalna konwersja z ORA-17132.

Aby ostatecznie wyczyścić, pełny kod błędu jest traktowany jako: błąd SQL: 17132, stan SQL: 99999, ale znajomość stosu:

2020-10-28 21: 30: 59.951 DEBUG 4988 --- O [nio-8080-exec-2] .h.engine.jdbc.spi.SqlExceptionHelper, nie udało się zastosować [com: .ormtester.datasources.domain.Address ] [dodaj ormtester.ADDRESS HOME_NUMBER, (miasto, ZIP_INDEX, STREET) wartości (?,?,?,?)]

Jeśli chodzi o realizację wygenerowanego żądania, to z pewnością widzę w moim drewnie opałowym jdbc, które zwykle detekcje są poprawnie skojarzone z instrukcją sosu. Wszystko wygląda na wysoką jakość. Cała strona została zbudowana za pomocą narzędzia Hibernate hbm2ddl w oparciu o ten sam status, tabela ADDRESSES blackjack (połączona z obiektem) wygląda następująco:

Dziwnym faktem jest to, że kiedy pracuję nad uruchomieniem ogólnie tej samej deklaracji wstawiania (która była cytowana wcześniej z dzienników JDBC) natychmiast do bazy danych, wszystko działa. Próbowałem też zmienić opcję ojdbc8 z 12.Even x na obecną 19.3.0.0 i komplikacją jest to, że pomysł dotyczący dystrybucji pozostał ten sam.

Cierpię na dziwne i godne zaufania poczucie, że eksperci twierdzą, że Hibernate i/lub ojdbc będą potrzebować problemów z tą hojną wersją ID (ale Oracle18c daje nam możliwość między autogenerowaniem a sekwencjami), ale szczerze mówiąc, nie mogę rozgryźć tekstu jest przyczyną wady... i/lub jak aplikacja powinna zostać rozwiązana.

Kontynuuj odkrywanie...

Zalecane:

Reimage to rewolucyjne oprogramowanie, które pomaga rozwiązać różne problemy z systemem Windows za pomocą jednego kliknięcia. Jest łatwy w użyciu i może pomóc w szybkim przywróceniu i uruchomieniu komputera. Więc nie cierpij już z powodu problemów z systemem Windows — Reimage może pomóc!

  • Krok 1: Pobierz i zainstaluj Reimage
  • Krok 2: Uruchom program i wybierz system, który chcesz przeskanować
  • Krok 3: Kliknij przycisk Skanuj i poczekaj na zakończenie procesu

  • Nie możesz się pomylić z tym narzędziem do naprawy systemu Windows. Jeśli masz problemy, po prostu kliknij, a Twoje problemy zostaną rozwiązane.