Avatar billede andersbl Nybegynder
23. juni 2010 - 12:34 Der er 11 kommentarer og
1 løsning

Synkronisering mellem MySql -> Postgre igennem JAVA

Hej Ekserpter
Jeg har følgende fejl.
Udfra hvad jeg kan læse handler det noget om karater-tegn. Men har fået at vide at både MySql og Postgre databasen begge er "LATIN1".
Så ved ikke hvordan jeg skal læse problemet, og hvad fejlen er.

org.postgresql.util.PSQLException: ERROR: character 0xcb9c of encoding "UTF8" has no equivalent in "LATIN1"
      at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
      at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
      at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:321)
      at rf.insertDB.connect(insertDB.java:113)
      at rf.runJob.main(runJob.java:23)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:616)
      at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Avatar billede arne_v Ekspert
23. juni 2010 - 15:42 #1
Fejlen laeses som:

PostgreSQL har forsoegt at gemme noget UTF-8 som ISO-8859-1 og det kunne ikke lade sig goere.
Avatar billede arne_v Ekspert
23. juni 2010 - 15:42 #2
Proev med en SQL saetning:

SET CLIENT_ENCODING TO Latin1

inden.
Avatar billede andersbl Nybegynder
23. juni 2010 - 16:57 #3
FEJL
MYSQL Forbindelse
POSTGRE forbindelse
org.postgresql.util.PSQLException: The server's client_encoding parameter was changed to latin1. The JDBC driver requires client_encoding to be UNICODE for correct operation.
      at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834)

      at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367)
      at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:321)
      at test.syncDB.connect(syncDB.java:93)

      at test.runJob.main(runJob.java:21)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:616)




PreparedStatement moreInfo1 = postgreCon.prepareStatement("set client_encoding to 'latin1'; UPDATE tblperson SET "   
                    + "person_firstname = '"+ user[i][0] + "', person_lastname='"+ user[i][1] +"', person_email_work='" + user[i][2].trim() + "', person_phone_mobile='"+ user[i][9] +"', person_birth='"+ user[i][7]
                    + "' WHERE person_id = " + user[i][8]);
            moreInfo1.executeUpdate();
Avatar billede arne_v Ekspert
23. juni 2010 - 17:35 #4
Saa duer det ikke.
Avatar billede arne_v Ekspert
23. juni 2010 - 17:36 #5
Hvis du kigger paa data i Java programmet (f.eks. ved at skrive til flad fil) efter du har hentet fra MySQL men foer du gemmer i PostgreSQL - ser data saa korrekte ud?
Avatar billede andersbl Nybegynder
23. juni 2010 - 18:55 #6
Hvis jeg laver en system.out.println ser det fint ud og kan kopirer teksten til postgre-admin og det virker også
Avatar billede arne_v Ekspert
24. juni 2010 - 02:01 #7
Nyt forslag:

?charSet=LATIN1

i enden af connection URL.
Avatar billede arne_v Ekspert
24. juni 2010 - 02:02 #8
Og ja - det er rene gætterier.
Avatar billede andersbl Nybegynder
24. juni 2010 - 07:17 #9
på mysql forbindelsen eller postgre?
Avatar billede arne_v Ekspert
24. juni 2010 - 15:21 #10
PostgreSQL
Avatar billede andersbl Nybegynder
24. juni 2010 - 16:32 #11
Deadline er nået for dem jeg leverer til. Så har ikke mulighed for at teste eller noget som helst mere. Ville ellers gner have prøvet at løse problemet, men det er der desværre ikke mulighed for.

Du må gerne smide et svar og få dine point!
Avatar billede arne_v Ekspert
25. juni 2010 - 04:33 #12
OK, men jeg synes nu egentligt ikke at jeg har løst så meget.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester