Wie wähle ich eine Spalte mit einem CLOB-Datentyp aus - java, sql, clob

Ich habe eine Tabelle auf meiner JSP-Seite, die eine haben wirdSpalte, die von einer Datenbankspalte mit dem Typ CLOB ausgefüllt wird. Ich stoße dabei in Schwierigkeiten und habe andere Fragen dazu gestellt, aber die Antworten haben bei mir nicht funktioniert. Hier ist meine Aussage, wo Kommentare ein CLOB ist.

   stmt = conn.prepareStatement("SELECT DISTINCT restriction, person, start_date, end_date, comments "
+ "  FROM restrictions WHERE person = ? "
+ "   AND (start_date BETWEEN TO_DATE (? , "yyyy/mm/dd") AND TO_DATE (? , "yyyy/mm/dd") "
+ "    OR start_date < TO_DATE (? , "yyyy/mm/dd") AND end_date IS NULL) " );

stmt.setString(1, Id);
stmt.setString(2, StartRest);
stmt.setString(3, EndRest);
stmt.setString(4, EndRest);
result = stmt.executeQuery();

Und dann werde ich die Spalten in einer While-Schleife haben:

   while (result.next()) {
restrictions = StringUtils.defaultString(result.getString("str_restriction"));
.......
// here is where I would get my Clob data from the query.

Also, im Grunde habe ich mich gefragt, ob es eine Möglichkeit gibt, den CLOB in die Abfrage oder sogar in den Java-Code zu übersetzen, damit er auf meiner Seite verwendbar ist.

Antworten:

2 für die Antwort № 1

Das Problem rührt von der distinct-Klausel der Abfrage her, die nicht auf einen CLOB angewendet werden kann.

Überprüfen Sie, ob das eindeutige Schlüsselwort wirklich benötigt wird. Oder vielleicht könnten Sie Ihre Abfrage als neu schreiben

select restriction, person, start_date, end_date, comments from restrictions
where id in (select distinct id from restrictions where <original where clause>)

PS: nächstes Mal, fügen Sie die Fehlermeldung und Ihre Datenbank in der Frage ein. Ich konnte das Problem mit einer einfachen Google-Suche auf "ora-00932 clob" finden.


Speisekarte