ORA-01722 при установке значений в таблицу базы данных - PullRequest
0 голосов
/ 20 декабря 2018

Hy, почему я получаю эту ошибку при попытке ввода данных в таблицу.

org.springframework.dao.DataIntegrityViolationException

PreparedStatementCallback;SQL [INSERT INTO INS_RAZNO.ZAPOSLENICI_TEST VALUES (?,?,?,?,?,?)];ORA-01722: недопустимое число

вложенным исключением является java.sql.SQLException: ORA-01722: недопустимое число

Кажется, что это проблема с целыми числами и строками, но у меня нетЗадача с аналогичным методом содержит также целые и строковые значения, но работает хорошо.Есть идеи, как решить эту проблему?

@Override
public void getExcell2() {
     final String PATH = "C:\\Workspace\\zaposlenici.xlsx";                     //putanja do excel file-a
     try {
        Workbook workbook = WorkbookFactory.create(new File(PATH));         //High level representation of a Excel workbook.
        Sheet sh = workbook.getSheetAt(0);                                  //High level representation of a Excel worksheet. 

        DataFormatter dataFormatter = new DataFormatter();                  //DataFormatter contains methods for formatting the value stored in an Cell.

        List<String> lista = new ArrayList<String>();                       //Lista sa vrijednostima svih ćelija

        sh.forEach(row -> {                                                 //sheet.forEach row
                row.forEach(cell -> {                                       //row.forEach cell
                String cellvalue = dataFormatter.formatCellValue(cell);     //formatira ćelije u string tip
                lista.add(cellvalue);
            });
        });
        workbook.close();

        ArrayList<String> lista1 = new ArrayList<String>();
        ArrayList<String> lista2 = new ArrayList<String>();
        ArrayList<String> lista3 = new ArrayList<String>();
        ArrayList<String> lista4 = new ArrayList<String>();
        ArrayList<String> lista5 = new ArrayList<String>();
        ArrayList<String> lista6 = new ArrayList<String>();


        @SuppressWarnings("unchecked")
        ArrayList<String>[] liste = new ArrayList[]{lista1, lista2, lista3, lista4, lista5, lista6};

        for (int i=0 ; i< lista.size(); i ++ ){ 
              if(lista.get(i) == null) {
                  liste[i % 6].add("NULL");
              }
              else if (lista.get(i) == "") {
                  liste[i % 6].add("NULL");
              }
              else {
              liste[i % 6].add(lista.get(i)); 
            }}


        jdbcTemplate.batchUpdate("INSERT INTO INS_RAZNO.ZAPOSLENICI_TEST VALUES (?, ?, ?, ?, ?, ?)", new BatchPreparedStatementSetter() {
            @Override           //"INSERT INTO INS_RAZNO.BULK_TEST VALUES (?, ?, ?)"                                    
            public void setValues(PreparedStatement ps, int i) throws SQLException {
                ps.setString(1, lista1.get(i));
                ps.setString(2, lista2.get(i));         
                ps.setString(3, lista3.get(i));
                ps.setString(4, lista4.get(i));
                ps.setString(5, lista5.get(i));
                ps.setString(6, lista6.get(i));
            }
            @Override
            public int getBatchSize() {
                return lista2.size();       
            }
        });


        } catch (EncryptedDocumentException | InvalidFormatException | IOException e) {
        e.printStackTrace();
        }
}    

Схема для таблицы:

CREATE TABLE "INS_RAZNO"."ZAPOSLENICI_TEST"(
    PREZIME varchar(15),
    IME varchar(15),
    ODJEL varchar(15), 
    SLOŽENOST_POSLA int, 
    STAROST int, 
    MJESEČNI_OD int
);

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Я решаю эту проблему, которая была сделана первой строкой, имеющей все строки для имен столбцов.Просто не вменяя первый ряд.

0 голосов
/ 20 декабря 2018

Ошибка ORA-01722 возникает, когда делается попытка преобразовать символьную строку в число, и строка не может быть преобразована в число

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...