2013-08-09 5 views
0

테이블 KontenHAUPTKONTO_1이 포함 된 JDBC를 사용하여 데이터베이스를 만듭니다. 나는 다음과 같은 쿼리를 실행하기 위해 노력하고있어JDBC 쿼리에서 null을 반환합니다.

CREATE TABLE "Konten"("id" "integer","typ" "string", "name" "string","ausgleichsDatum" "integer","wechselDatum" "integer", "beschreibung" "string"); 

CREATE TABLE "HAUPTKONTO_1"("id" "integer","typ" "string","datum" "datetime","beschreibung" "string","wert" "numeric","summe" "integer") 

INSERT INTO Konten VALUES ('1', 'HAUPTKONTO', 'Mein Bankkontolein','0','0','bei der 0815 bank für mein Geld') 

INSERT INTO Konten VALUES ('2', 'KONTO', 'Mein Bankkontolein','0','0','bei der 0815 bank für mein Geld') 

INSERT INTO HAUPTKONTO_1 values('1 ' , ' BUCHUNG ' , ' 01.01.2001 ' , ' meine erste Transaktion ' , ' 1 ' , ' 1 ') 

INSERT INTO HAUPTKONTO_1 values('2 ' , ' BUCHUNG ' , ' 01.01.2002 ' , ' meine zweite Transaktion ' , ' 3 ' , ' 4 ') 

: 모두 이러한 테이블을 작성하고 채울 내 SQL 문입니다

id라는 정수 열이

select * from HAUPTKONTO_1 WHERE id ='1' 

또는

select * from HAUPTKONTO_1 WHERE typ ='BUCHUNG' 

또는

,
select * from HAUPTKONTO_1 WHERE typ like 'BUCHUNG' 

dv.getStatement().executeQuery(befehl); 

사용하지만 어떤 결과를 얻을 수 없습니다.

select * from HAUPTKONTO_1 

select * from Konten WHERE id ='1' 

두 쿼리는 문제없이 작동합니다.

그것은 파이어 폭스에서 SQLite는 관리자와 함께 작동 :

SQLite Databrowser

같은 문제를 보여줍니다.

+0

이것은 영어가 모국어입니다. 그리고 btw : '1'은 문자열 리터럴이고, '1'은 SQL의 숫자입니다. 사과와 오렌지를 비교하지 마십시오. 'id = '1'은 숫자를 문자열과 비교합니다. 비록 그것은 좋은 코딩 스타일 (다른 DBMS는 훨씬 더 제한적일 수 있습니다) 작동하지 않을 수도 있습니다. –

답변

1

모든 값 주위에 공백이 있습니다. '1'은 (는)와 일치하지 않습니다 '1 ' :

INSERT INTO HAUPTKONTO_1 values('1 ' , ' BUCHUNG ' , ' 01.01.2001 ' , ' meine erste Transaktion ' , ' 1 ' , ' 1 ') 
+0

감사합니다 :). 이제 작동 :) – user2667549

관련 문제