sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan kan jeg indsætte JSON-objekt i Postgres ved hjælp af Java readyStatement?

Denne adfærd er ret irriterende, da JSON-strenge accepteres uden problemer, når de bruges som bogstavelige strenge i SQL-kommandoer.

Der er allerede et problem for dette i postgres driver Github repository (selvom problemet ser ud til at være serversidebehandlingen).

Udover at bruge en cast (se svar fra@a_hest_med_intet_navn) i sql-strengen, tilbyder problemforfatteren to yderligere løsninger:

  1. Brug en parameter stringtype=unspecified i JDBC-forbindelsens URL/indstillinger.

Dette fortæller PostgreSQL, at al tekst eller varchar-parametre faktisk er af ukendt type, hvilket lader den udlede deres typer mere frit.

  1. Indpak parameteren i et org.postgresql.util.PGobject :

PGobject jsonObject = new PGobject(); jsonObject.setType("json"); jsonObject.setValue(yourJsonString); pstmt.setObject(11, jsonObject);

  1. PDO::__construct():Server sendte tegnsæt (255) ukendt for klienten. Venligst rapporter til udviklerne

  2. JSON_ARRAY_APPEND() – Tilføj værdier til et JSON-array i MySQL

  3. Oracle-funktionseksempel (returnummer)

  4. Annoncering af ClusterControl 1.7.4:Klynge-til-klynge-replikering - Ultimativ gendannelse af katastrofer