간단한 CSV 파일을 HSQL 데이터베이스의 소스로 가져 오려고합니다. 가 나는 다음과 같은 오류가 날짜에 차단하고 있습니다 :CSV 테이블 소스가있는 HSQLDB - 날짜 형식이 허용되지 않습니다.
Exception in thread "main" java.sql.SQLException: bad TEXT table source file - line number: 1 org.hsqldb.HsqlException: data exception: invalid datetime format in statement [SET TABLE Patient SOURCE "queryDbTest.csv;fs=,;vs=,"]
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
나는 많은 변화를 시도, 모두가 같은 오류로 실패했습니다. 파일이 읽히고, 그것을 디버깅하는 데 올바른 날짜 형식으로 이해하고있는 날짜까지 구문 분석에 실패하는 것을 볼 수 있습니다.
- 대신
- 을 입력 '날짜 시간'을 사용하여 컬럼으로 :
System.setProperty("textdb.allow_full_path", "true"); Class.forName("org.hsqldb.jdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:hsqldb:mem:mymemdb", "SA", ""); Statement st = conn.createStatement(); st.execute("CREATE TEXT TABLE Patient (" + "HospitalNumber VARCHAR(100), " + "NHS_Number VARCHAR(100), " + "Name VARCHAR(100), " + "other_names VARCHAR(100), " + "dob Date, " + "address VARCHAR(200))"); st.execute("SET TABLE Patient SOURCE \"" + "queryDbTest.csv" + ";all_quoted=true;fs=,;qc=\\quote\"");
을 다음과 내 CSV로
내 코드는 내가 시도
'1234', 'N998877', 'Smith', 'Mary', '1999-12-01', 'an address 1'
변형을 포함입니다 CSV 파일에서 DateTime 형식 사용 (i..e, yyyy-MM-dd)HH : MM : SS)
- CSV (즉, YYYY-MM-DD HH 의 타임 스탬프 형식을 사용 : mm : ss.SSSSS)
- CSV에서 한 날짜 값으로 널 사용. 모든 경우에서 csv 파일
에서 날짜 값 이전 단어 'DATE'와
저는 hsqldb-2.3.4를 사용하고 있습니다.
아이디어가 있으십니까?
fredt – svaens