Как только я выполню следующий код, поймите, что вставка невозможна. я вижу, что значение строки равно 1 после выполнения prepstmt.executeUpdate (), но запись вставки не указана в базе данных. я также использовал набор результатов, чтобы проверить, создана ли соответствующая запись, но в этой строке я сталкиваюсь с исключением нулевого указателя. в чем может быть причина? есть идеи?
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@172.31.60.83:1521:TBCEBTRL", "TESTUSER","TESTUSER");
String sqlQuery = "INSERT INTO PROVISIONING_MGNT.MERNIS_CUSTOMER_INFO (TC_ID,MOTHER_TC_ID,FATHER_TC_ID, BIRTHPLACE_CODE,SPOUSE_TC_ID, NAME, SURNAME, SEX, FATHER_NAME, MOTHER_NAME, DATE_OF_BIRTH_YEAR, DATE_OF_BIRTH_MONTH, DATE_OF_BIRTH_DAY, PLACE_OF_BIRTH, STATUS, MARITAL_STATUS,RELIGION,DATE_OF_DEATH_YEAR,DATE_OF_DEATH_MONTH,DATE_OF_DEATH_DAY, PROVINCE_CODE, PROVINCE_NAME, COUNTY_CODE, COUNTY_NAME, VOLUME_CODE, VOLUME_NAME, FAMILY_SEQUENCE_NUMBER, PERSON_SEQUENCE_NUMBER,ERROR_CODE,ERROR_DESCRIPTION,CREATION_TIME,DOCUMENT_NO) "
+ "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement prepstmt = conn.prepareStatement(sqlQuery);
//Statement stmt = conn.createStatement();
Random r = new Random();
int number = 1000000000 + (int)(r.nextDouble() * 999999999);
ThreadLocalRandom random = ThreadLocalRandom.current();
long x = random.nextLong(10_000_000_000L, 100_000_000_000L);
System.out.println(random.nextLong(10_000_000_000L, 100_000_000_000L));
prepstmt.setLong(1, x);
prepstmt.setNull(2, java.sql.Types.NULL );
prepstmt.setNull(3, java.sql.Types.NULL );
prepstmt.setInt(4, 1542);
prepstmt.setNull(5, java.sql.Types.NULL );
prepstmt.setString(6, "TEST");
prepstmt.setString(7, "TEST");
prepstmt.setString(8, "Male");
prepstmt.setString(9, "Father");
prepstmt.setString(10, "Mother");
prepstmt.setInt(11,1968);
prepstmt.setInt(12,10);
prepstmt.setInt(13,10);
prepstmt.setString(14,"ADANA");
prepstmt.setString(15,"Open");
prepstmt.setString(16,"Single");
prepstmt.setNull(17, java.sql.Types.NULL );
prepstmt.setNull(18, java.sql.Types.NULL );
prepstmt.setNull(19, java.sql.Types.NULL );
prepstmt.setNull(20, java.sql.Types.NULL );
prepstmt.setInt(21,1);
prepstmt.setString(22,"ADANA");
prepstmt.setInt(23,1101);
prepstmt.setString(24,"TEST");
prepstmt.setInt(25,1);
prepstmt.setString(26,"MERKEZ");
prepstmt.setInt(27,39);
prepstmt.setInt(28,2);
prepstmt.setNull(29, java.sql.Types.NULL );
prepstmt.setNull(30, java.sql.Types.NULL );
prepstmt.setNull(31, java.sql.Types.NULL );
prepstmt.setInt(32,number);
int row = prepstmt.executeUpdate();
System.out.println(number);
System.out.println(row);
ResultSet rs = prepstmt.getResultSet();
rs.next();
String name = rs.getString("NAME");
System.out.println(name);