Ich habe eine Datenbanktabelle, die aussieht wie:
Tabellenantworten erstellen ( id int nicht null, question_id int nicht null, Antworttext null )
Diese Tabelle wurde ursprünglich von Hibernate mit dem Attribut @Lob für die Spalte "Antwort" erstellt. Ich habe es damals noch nicht bemerkt, aber bei dieser Einrichtung speichert Hibernate anstelle des eigentlichen Textes eine OID in der Spalte. Alles funktioniert einwandfrei, wenn ich den Ruhezustand zum Abrufen der Werte verwende, da die OID automatisch in die CLOB-Zeichenfolge konvertiert wird. Dies wird jedoch zu einem Leistungsproblem, und ich möchte die OID entfernen.
Wählen Sie * aus den Antworten ID QUESTION_ID ANTWORT =============================== 1 123 55123 2 234 51614 3 345 56127 sollte sein ID QUESTION_ID ANTWORT =============================== 1 123 Männlich 2 234 203-555-1212 3 345 555 Main St. New York, NY
Mein Wunsch ist es, der Tabelle "ANSWER_VALUE TEXT" eine zusätzliche Spalte hinzuzufügen und wie folgt vorzugehen, um den tatsächlichen Wert in die Tabelle aufzunehmen, und dann den Ruhezustand zu ändern, um den @ Lob-Bezeichner nicht zu verwenden
Antworten aktualisieren set ANSWER_VALUE = getValueFromOID (ANSWER)
Existiert diese Funktion "getValueFromOID"? Wenn nicht, könnte ich einige Hinweise dazu erhalten, wie man eine erstellt oder zumindest den tatsächlichen Wert einer OID abruft?
Vielen Dank
quelle
loread()
? postgresql.org/docs/9.0/static/lo-funcs.htmllo_read
.