---
title: 'Die SQL3-Datentypen ARRAY, STRUCT und REF'
url: 'https://tutego.de/blog/javainsel/2013/09/die-sql3-datentypen-array-struct-und-ref'
markdown: 'https://tutego.de/blog/javainsel/2013/09/die-sql3-datentypen-array-struct-und-ref.md'
date: '2013-09-11'
description: 'Seitdem JDBC 2.0 die SQL3-Datentypen unterstützt, sind weitere Spaltentypen über Java-Programme zugänglich: ARRAY. Der Datentyp erlaubt eine Aufzählung mehrerer Werte wie ein Feld in einer Spalte. STRUCT. Neue benutzerdefinierte Typen – auch UDTs (user-defined types) genannt –, die auf der Datenba…'
taxonomy:
  category:
    - 'Java SE'
---

# Die SQL3-Datentypen ARRAY, STRUCT und REF

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Die SQL3-Datentypen ARRAY, STRUCT und REF

11.09.2013 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

Seitdem JDBC 2.0 die SQL3-Datentypen unterstützt, sind weitere Spaltentypen über Java-Programme zugänglich:

- **ARRAY**. Der Datentyp erlaubt eine Aufzählung mehrerer Werte wie ein Feld in einer Spalte.
- **STRUCT**. Neue benutzerdefinierte Typen – auch UDTs (user-defined types) genannt –, die auf der Datenbankseite mit der SQL-Anweisung CREATE TYPE angelegt werden.
- **REF**. Verweise auf strukturierte Typen.

Am Nützlichsten ist das Feld.

**ARRAY**

SQL-Felder werden in JDBC durch die Schnittstelle **`java.sql.Array`** behandelt. Nehmen wir in einer Tabelle eine Spalte Aktienverlauf an, die eine Liste (Array) von Zahlen enthält. Aus dem **ResultSet** gibt dann **`getArray()`** Zugriff auf die Informationen:

```java
Array verlauf = rs.getArray( "Aktienverlauf" );
```

Die Variable verlauf verweist jetzt auf das Array-Objekt, was dem SQL ARRAY entspricht. Die Werte können nun entnommen werden, doch nicht mit einem `Iterator`, und auch nicht mit **`get(index)`** Funktionen, sondern wieder mit einem Aufruf **`getArray()`**. Es liefert ein Feld genau des passenden Typs zurück.

```java
String[] verläufe = (String[]) verlauf.getArray();
for ( int i = 0; i < verläufe.length; i++ )
  ...
```

Neben dem lesenden **`getArray()`** setzt **`setArray()`** ein Feld, und **`updateArray()`** aktualisiert die Werte.

Kategorien: [Java SE](https://tutego.de/blog/javainsel/category/java-se/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Kreditkartennummern in Java testen](https://tutego.de/blog/javainsel/2013/09/kreditkartennummern-in-java-testen.md)
- Next: [Automatisch Fehler finden](https://tutego.de/blog/javainsel/2013/09/automatisch-fehler-finden.md)
