Einleitung
Willkommen zum ersten Teil der technischen Serie “Oracle Converged Database in der Praxis”. Im Nachfolgenden gebe ich einen Überblick über die Möglichkeiten der Oracle Converged Database. Der Focus liegt dabei auf der Nutzung der verschiedenen Datentypen und APIs aus Sicht eines Entwicklers. Im ersten Teil geht es um die Installation einer Oracle Database als Docker Container und das Einrichten und Verwenden von RESTful Services in der Datenbank.
Was ist die Oracle Converged Database? Meine geschätzte Kollegin Ulrike Schwinn hat im Blog-Eintrag “Oracle Converged Database – was ist das?” eine sehr gute und übersichtliche Einleitung zu diesem Thema geschrieben.
Vor diesem Hintergrund fasse ich nur verkürzt zusammen, was das Thema adressiert. Eine Converged Database ist eine Datenbank, die native Unterstützung für alle modernen Datentypen und die neuesten Entwicklungsparadigmen bietet, die in einem Produkt integriert sind. Das bedeutet, dass die Oracle Converged Database viel mehr ist als nur eine relationale Datenbank mit einer SQL-Schnittstelle.
Selbst die Möglichkeit, die Oracle-Datenbank innerhalb von CI/CD Pipelines zu verwenden, ist nicht all zu bekannt. Zu diesem Thema hat mein Kollege Tim Hall den sehr lesenswerten Artikel “Oracle Databases and CI/CD Pipelines” in englischer Sprache verfasst.
Der folgende Blog-Artikel stellt ein Praxisbeispiel dar, deshalb ist nachmachen empfohlen! Es gibt mittlerweile verschiedenste Möglichkeiten sich schnell eine Oracle-Datenbank zu installieren, um die Übungen durchzuführen. Falls Ihnen aktuell keine Datenbank zur Verfügung steht, können Sie unter einer/mehreren Möglichkeiten auswählen:
- Linux-Installation der Oracle-Datenbank über RPMs
- Nutzung des Oracle Cloud Infrastructure Free Trial und des darin enthaltenen Oracle Database Cloud Service
- Traditionelle Installation durch Herunterladen der Software
- Nutzung einer Oracle-Datenbank im Docker Container
Die letzte vorgestellte Möglichkeit werde ich für die folgenden Beispiele nutzen. Vorteil der Nutzung eines Oracle Container Docker Images ist die schnelle Verfügbarkeit und der geringe Konfigurationsaufwand.
Installation der Datenbank im Docker Container
Die Nutzung von Docker Container stellt in der DevOps-Kultur die Lösung für das schnelle und effiziente Bereitstellen von Software-Services dar. Sicherlich gibt es gerade bei produktiven, kritischen Applikationen bessere Varianten, als eine Datenbank in einem Docker-Container laufen zu lassen, für Test- und Entwicklung ist dies aber durchaus ein smarter Weg.
Im Folgenden beschreibe ich die Installation und Konfiguration aller benötigten Komponenten auf einer “frischen” Linux-Instanz.
Die Installation/Konfiguration erfolgt in folgenden Schritten:
- Anlegen der Benutzer und erstellen der Rechte
- Installation von Docker und GIT und klonen des Oracle Repositoriums
- Erstellen des Oracle Datenbank Single Instance Container Image
- Erstellen und starten des Oracle Datenbank Containers
Anlegen der Benutzer und erstellen der Rechte
Im ersten Schritt logge ich mich mit Root-Rechten auf den Linux-Server ein und erstelle den Oracle-Benutzer mit dem Befehl
yum -y install oracle-database-preinstall-19c.x86_64
Dazu verwende ich das verfügbare Linux-RPM, um den Benutzer Oracle mit allen benötigen Abhängigkeiten und Packages zu installieren. Wer zu diesem Thema detailliertere Informationen erhalten möchte, kann diese unter folgendem Link finden. Um die weitere Installation zu vereinfachen, gebe ich den Oracle-Benutzer anschließend SUDO-Rechte.
Installation von Docker und GIT
Die Installation der Docker-Engine erfolgt über ein Linux-RPM-Package, um eine aktuelle Version der Docker-Engine zu bekommen, mache ich vorher ein Upgrade auf das aktuelle YUM-Repository als Oracle-Benutzer.
sudo yum upgrade
sudo yum -y install yum-utils
sudo yum-config-manager –enable *addons
sudo yum -y install docker-engine
Wer mehr Informationen über die Installation von Docker auf Linux 7 benötigt, kann diese unter folgendem Link erhalten.
Git ist ein Tool für verteilte Versionskontrolle und wird im Anschluss dazu verwendet, ein Oracle Docker Image zu erzeugen. Zur Installation des Git-Tools führe ich folgenden Befehl unter dem Oracle-Benutzer aus:
sudo yum -y install git
Um mit dem Benutzer Oracle anschließend Docker nutzen zu können, muss ich ihn zur Gruppe docker mit folgendem Befehl hinzufügen:
sudo usermod -aG docker oracle
Im nächsten Schritt wird vom öffentlichen Oracle Git-Repository ein lokaler Klon angelegt. Das Oracle Repositorium enthält Dockerfiles und Beispiel-Docker-Images von Oracle-Produkten und gesponserten Open Source Projekten zu erzeugen.
git clone https://github.com/oracle/docker-images.git
Erstellen des Oracle-Datenbank Single Instance Container Image
Um das Oracle Single Database als Docker Container Image zu erstellen, sind wenige Schritte nötig. Wenn das Docker Image erstellt worden ist, kann man anschließend aus diesem Image beliebig viele Instanzen erzeugen. Eine detaillierte Beschreibung für die Erstellung des Images finden Sie unter folgendem Link. Wir verwenden in unserem Beispiel eine Single Instance Database, diese kann in folgenden Versionen erzeugt werden:
- Oracle Database 19c (19.3.0) Enterprise Edition and Standard Edition 2
- Oracle Database 18c (18.4.0) Express Edition (XE)
- Oracle Database 18c (18.3.0) Enterprise Edition and Standard Edition 2
- Oracle Database 12c Release 2 (12.2.0.2) Enterprise Edition and Standard Edition 2
- Oracle Database 12c Release 1 (12.1.0.2) Enterprise Edition and Standard Edition 2
- Oracle Database 11g Release 2 (11.2.0.2) Express Edition (XE)
Aus Gründen der Aktualität entschied ich mich für eine Oracle Database 19c (19.3.0) Enterprise Edition. Im ersten Schritt muss die Datenbank-Software von der Oracle-Download-Seite heruntergeladen werden. Die heruntergeladene ZIP-Datei wird anschließend in das lokale Docker Repositorium unter dem Verzeichnis <USERHOME>/oracle/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0 verschoben. Nicht vergessen, das ZIP-File durch den nachfolgenden Befehl ausführbar zu machen:
chmod u+x ./LINUX.X64_193000_db_home.zip
HINWEIS: Anders als in der verlinkten Beschreibung muss das ZIP-File nicht umbenannt werden! Das ZIP-File wird mit der Bezeichnung LINUX.X64_193000_db_home.zip direkt und ohne Änderung in das angegebene Verzeichnis verschoben.
Anschließend wird aus dem Installationsmedium und den Konfigurationsdateien des lokalen Git-Repository das Docker Image mit folgenden Befehl erzeugt:
<USERHOME>/docker-images/OracleDatabase/SingleInstance/dockerfiles/buildDockerImage.sh -v 19.3.0 -e
Der Parameter -v gibt die verwendete Version an, in diesem Fall 19.3, der Parameter -e steht für die Enterprise Edition. Wer Interesse hat, kann sich das Image unter dem Verzeichnis /var/lib/docker/overlay2/<IMAGE_ID>/diff anschauen.
Erstellen und starten des Oracle Datenbank Containers
Nachdem wir das Docker-Image erstellt haben, wird es Zeit, daraus eine laufende Instanz zu erzeugen. Den dafür benötigten Befehl kann man im Hintergrund laufen lassen, wenn man nicht möchte, dass der Container nach dem Schließen des Terminal-Fensters herunterfährt. Man kann natürlich den Container anschließend auch wieder hochfahren!
docker run –name convergedDB \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=oradb \
-e ORACLE_PDB=pdb1 \
-e ORACLE_PWD=<YOUR_PASSWORD> \
-v /home/oracle:/opt/oracle/oradata \
oracle/database:19.3.0-ee
Die Beschreibung der Parameter in Kürze: Der –Name ist der Container-Name, -p steht für das Port-Mapping, d. h. das Mapping der Ports des Docker-Container auf den des Hosts. Beim Parameter -e kann man verschiedenen zusätzliche Parameter angeben, wichtig sind an dieser Stelle die SID, PDB-Name und natürlich das verwendete Passwort. Der letzte Parameter -v beschreibt, wo das Volume angehängt wird. In einem Docker Container verschwinden nach dem Herunterfahren alle getätigten Änderungen. Um dies zu verhindern, können bestimmte Verzeichnisse auf die lokalen Verzeichnisse des Hosts ausgelagert werden. In diesem Fall wird das Docker-Verzeichnis /opt/oracle/oradata, also die Datenbank-Files, in das lokale Verzeichnis /home/oracle gehängt und ist somit persistent.
Wenn der Container vollständig gestartet ist, sehen Sie das an der Meldung:
#########################
DATABASE IS READY TO USE!
#########################
Verwenden von RESTful Services in der Datenbank
Was kann man jetzt mit der frisch erstellten Docker-Container-Datenbank machen? Zum Beispiel den Zugriff auf Tabellen für RESTful Services ermöglichen. Im Folgenden wird erklärt, welche Schritte dazu notwendig sind.
- Anlegen eines REST-Benutzers und erstellen einer Beispieltabelle
- Konfiguration des ORDS (Oracle REST Data Services)
- Konfigurieren des Schemas/der Tabelle für den Zugriff mittels REST
- Starten des (Standalone) REST Web-Servers.
Bevor wir über die Konfiguration sprechen, müssen wir auf die Datenbank zugreifen können. Hierzu gibt es mehrere Möglichkeiten. Die erste Möglichkeit ist der Zugriff auf die Datenbank innerhalb des Docker Containers. Mit folgendem Befehl öffnet man eine Bash-Eingabe in der Docker-Instanz:
docker exec -ti <container-name> /bin/bash
Den Container-Namen erhält man mit dem Docker-Befehl.
docker ps
In der Docker-Instanz kann man sich die Dateistruktur anschauen, ob die Datenbankprozesse laufen (ps -ef | grep oracle).
Leider sind die installierten Tools in dem verwendeten Linux-Image sehr begrenzt (zum Beispiel vi ist nicht vorhanden), daher würde ich grundsätzlich von “außen” arbeiten. Außen heißt in diesem Fall entweder vom Host auf den Docker Container oder natürlich auch von einem anderen Host auf den Docker Container Host zuzugreifen, die Ports wurden ja beim Docker-Build gemappt, daher ist der Zugriff transparent. In meinem Fall verwende ich den Oracle Instant Client, dieser bietet mir die nötige Flexibilität und ist schnell, einfach und platzsparend installiert. Wer mehr erfahren möchte, wie man den Oracle Instant Client über RPMs installieren kann, dem empfehle ich den folgenden Artikel.
Wenn man sich mit SQL*Plus auf dem Docker Container Host mit der Datenbank verbinden möchte, sieht der Befehl folgendermaßen aus:
sqlplus system@//localhost:1521/PDB1
Befindet man sich auf einem anderen Host, muss die IP-Adresse als Host angegeben werden:
sqlplus system@//<ip_des_docker_host>:1521/PDB1
HINWEIS: Sollte man nach einiger Wartezeit den Fehler: ORA-12637: Packet receive failed erhalten, ist dies ein Problem des “Out-Of-Band breaks”, eigentlich ein Sicherheits-Feature, das bei einigen Netzwerken zu Problemen führt. Die Lösung: Mit folgendem Befehl einen Parameter in die persistente Datei sqlnet.ora hinzufügen:
echo “DISABLE_OOB=ON” >> /home/oracle/dbconfig/ORADB/sqlnet.ora
Eine genaue Beschreibung findet man unter folgendem Link.
Anlegen eines REST-Benutzers und Erstellen einer Beispieltabelle
Um auf eine Datenbank-Tabelle mittels RESTful-Service zugreifen zu können, müssen wir im ersten Schritt diese Tabelle und natürlich vorher den dazugehörigen Benutzer anlegen. Dies erfolgt mit Standard-SQL-Befehlen.
— USER SQL
CREATE USER “MARCUS” IDENTIFIED BY “<hier_steht_ihr_passwort>”
DEFAULT TABLESPACE “USERS”
TEMPORARY TABLESPACE “TEMP”;
GRANT “DBA” TO “MARCUS” ;
GRANT “CONNECT” TO “MARCUS” ;
— TABLE ADDRESSEN
CREATE TABLE “MARCUS”.”ADRESSEN”
( “VORNAME” VARCHAR2(20 BYTE),
“NACHNAME” VARCHAR2(20 BYTE),
“STRASSE” VARCHAR2(20 BYTE),
“HAUSNUMMER” VARCHAR2(20 BYTE),
“PLZ” VARCHAR2(20 BYTE),
“ORT” VARCHAR2(20 BYTE),
“BUNDESLAND” VARCHAR2(20 BYTE),
“LAND” VARCHAR2(20 BYTE)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE “USERS” ;
Hinweis an dieser Stelle: Beachten Sie die Groß-/Kleinschreibung des Benutzers und achten Sie wie immer darauf, dass sich keine versteckten Zeichen hineinmogeln – ich spreche hier aus Erfahrung 😉
Konfiguration des ORDS (Oracle REST Data Services)
Das ORDS-Paket lädt man separat herunter und kann es an einer beliebigen Stelle installieren und konfigurieren. In meinem Fall habe ich das Paket auf meinem lokalen MAC installiert, man sollte selbstverständlich Zugriff auf den Docker Container Host und den Datenbank-Port haben. Herunterladen kann man das Paket unter folgendem Link. Von dort auf ORDS gehen und das gewünschte Paket auswählen. Es gibt verschiedene Versionen, die zum Teil mehr Funktionalitäten bieten, in diesem konkreten Fall habe ich die 20c-Version verwendet.
Im ersten Schritt wird ein Skript ausgeführt, das für den erstellen Benutzer die nötigen Rechte vergibt. Daher würde ich das Skript als sysdba ausführen.
sqlplus sys@//<ip_des_docker_host>::1521/PDB1 as sysdba @/<ords_installations_ort/installer/ords_installer_privileges.sql MARCUS
Im nächsten Schritt werden die ORDS-Pakete in die Datenbank installiert. In unserem Fall installieren wir es in die Pluggable Database und nicht in den Root-Container (CDB). Wird das Paket in den Root Container installiert, wird es automatisch in alle vorhandenen PDBs mitinstalliert. Der Aufruf erfolgt über Java und startet den Installer mit erweiterten Optionen.
java -jar ords.war install advanced
Im folgenden Listing habe ich die Ausgabe mit angegeben, damit Sie wissen, welche Optionen ich für die Konfiguration gewählt habe:
Geben Sie den zu verwendenden Datenbankverbindungstyp an.
Geben Sie die Zahl für [1] Basis [2] TNS [3] Benutzerdefinierte URL an [1]:1
Name des Datenbankservers eingeben [localhost]:<ip_des_docker_host>
Listener-Port der Datenbank eingeben [1521]:
1 eingeben, um den Servicenamen der Datenbank anzugeben, oder 2, um die Datenbank-SID anzugeben [1]:1
Datenbankservicename eingeben:PDB1
Geben Sie 1 ein, wenn Sie das Oracle REST Data Services-Schema verifizieren/installieren möchten, oder 2, um diesen Schritt zu überspringen [1]:1
Datenbankkennwort für ORDS_PUBLIC_USER eingeben:
Kennwort bestätigen:
Verifizierung des Oracle REST Data Services-Schemas erfordert eine Anmeldung mit Administratorberechtigungen.
Geben Sie den Administratorbenutzernamen ein:sys as sysdba
Datenbankkennwort für sys as sysdba eingeben:
Kennwort bestätigen:
Verbindung zu Datenbankbenutzer: sys as sysdba URL: jdbc:oracle:thin:@//<ip_des_docker_host>:1521/PDB1 wird hergestellt
Informationen werden abgerufen.
Geben Sie den Default Tablespace für ORDS_METADATA ein [SYSAUX]:
Geben Sie den Temporary Tablespace für ORDS_METADATA ein [TEMP]:
Geben Sie den Default Tablespace für ORDS_PUBLIC_USER ein [USERS]:
Geben Sie den Temporary Tablespace für ORDS_PUBLIC_USER ein [TEMP]:
Geben Sie 1 ein, wenn Sie das PL/SQL-Gateway verwenden möchten, oder 2, um diesen Schritt zu überspringen.
Wenn Sie Oracle Application Express verwenden oder eine Migration von mod_plsql durchführen, müssen Sie 1 eingeben [1]:
Geben Sie den Benutzernamen für die PL/SQL Gateway-Datenbank ein [APEX_PUBLIC_USER]:
Datenbankkennwort für APEX_PUBLIC_USER eingeben:
Kennwort bestätigen:
Geben Sie 1 ein, um Kennwörter für Application Express RESTful Services-Datenbankbenutzer anzugeben (APEX_LISTENER, APEX_REST_PUBLIC_USER), oder 2, um diesen Schritt zu überspringen [1]:
Datenbankkennwort für APEX_LISTENER eingeben:
Kennwort bestätigen:
Datenbankkennwort für APEX_REST_PUBLIC_USER eingeben:
Kennwort bestätigen:
Geben Sie eine Zahl für die Featureauswahl ein, um Folgendes zu aktivieren:
[1] SQL Developer Web (aktiviert alle Features)
[2] REST-fähige SQL
[3] Datenbank-API
[4] REST-fähige SQL und Datenbank-API
[5] Kein Wert
Auswählen [1]:1
2020-07-28T08:52:38.755Z INFO reloaded pools: []
Oracle REST Data Services Version 20.2.0.r1781804 wird installiert
… Logdatei in /Users/marcusschroder/ords_install_core_2020-07-28_105239_00055.log geschrieben
… Datenbankvoraussetzungen wurden verifiziert
… Oracle REST Data Services-Proxybenutzer wurde erstellt
… Oracle REST Data Services-Schema wurde erstellt
… Berechtigungen für Oracle REST Data Services wurden erteilt
… Oracle REST Data Services-Datenbankobjekte wurden erstellt
… Logdatei in /Users/marcusschroder/ords_install_datamodel_2020-07-28_105313_00629.log geschrieben
… Logdatei in /Users/marcusschroder/ords_install_apex_2020-07-28_105316_00800.log geschrieben
Installation für Oracle REST Data Services Version 20.2.0.r1781804 wurde abgeschlossen. Verstrichene Zeit: 00:00:40.659
Geben Sie 1 ein, wenn Sie im Modus “Standalone” starten möchten, oder 2 zum Beenden [1]:2
Am Ende starte ich den ORDS noch nicht im Standalone -Modus, da ich erst den Zugriff auf die Tabelle konfigurieren möchte.
Konfigurieren des Schemas/der Tabelle für den Zugriff mittels REST
Das ORDS-Paket ermöglicht mir Datenbank-Schemata und Objekte automatisch REST zu “enablen”. Dafür melde ich mich erst als ORDS-Benutzer (in diesem Fall MARCUS) via SQL*Plus an der Container Datenbank an und führe folgendes Skript aus:
BEGIN
ORDS_ADMIN.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => ‘MARCUS’
p_url_mapping_type => ‘BASE_PATH’,
p_url_mapping_pattern => ‘M‘,
p_auto_rest_auth => FALSE );
COMMIT;
END;
In diesem Skript wird das verwendete Schema für die Nutzung von ORDS konfiguriert. Die wichtigen Parameter sind die der p_url_mapping_type, der die Basis-URL beschreibt und der p_url_mapping_pattern der das Schema mit der URL Mapped. Später kann man die Tabelle über http://<ip_des_docker_host>:<gewählter_port>/ords/m/<tabellen_name> aufrufen.
BEGIN
ORDS_ADMIN.ENABLE_OBJECT(
p_enabled => TRUE,
p_schema => ‘MARCUS’,
p_object => ‘ADRESSEN’,
p_object_type => ‘TABLE’,
p_object_alias => ‘ADRESSEN’);
COMMIT;
END;
Mit diesem Befehl wird die Tabelle ADRESSEN für den Zugriff per RESTful-Service konfiguriert. Der wichtige Parameter ist an dieser Stelle der p_object_alias, da ja nicht immer der Tabellenname als Object öffentlich gemacht werden sollte.
Starten des Standalone REST Web-Servers
Um auf den ORDS zugreifen zu können, muss dieser auf einem Web-Server laufen. Dafür kann zum Beispiel ein Tomcat oder WebLogic Server verwendet werden, die einfachste Variante ist der Jetty-Standalone-Web-Server den die ORDS-Installation beinhaltet. Dieser ist natürlich nur für Testzwecke, also genau das Richtige für unser Beispiel. Diesen Server startet man durch folgenden Befehl:
java -jar ords.war standalone
Nach Eingabe des gewünschten Listener-Ports der verwendet werden soll, wird der Server gestartet.
Verwenden von Oracle Converged DB RESTful Services
Nun haben wir eine Oracle Converged DB im Docker Container erstellt und den RESTful Service installiert und konfiguriert. Das ist bis jetzt mehr administrative Arbeit und hat mit der Entwicklung nicht viel zu tun… Daher kümmern wir uns in diesem Abschnitt mehr um die Möglichkeiten mit dem RESTful Service. Zur Demonstration, was man mit dem RESTful Service alles machen kann, beschränken wir uns an dieser Stelle auf das Auslesen, Einfügen, Ändern und Löschen von Daten. Es gibt noch eine Reihe von zusätzlichen Funktionen, die man verwenden kann, diese würden allerdings den Rahmen des Artikels sprengen. Wer eine Übersicht über die Möglichkeiten gewinnen möchte, kann unter folgendem Link eine Auflistung der Funktionen sehen.
Zum Anzeigen der verschiedenen Abfragen empfehle ich einen Web-Browser mit REST-Plugin. Ich verwende für diesen Artikel den Google Postman.
Im ersten Schritt sehen wir uns die aktiven Schema-Daten mit folgender URL an:
GET http://<ORSD-STANDALONE-HOST>:<PORT>/ords/<SchemaAlias>/metadata-catalog/
In unserem Fall ist der Schema Alias, wie in der ORDS_ADMIN.ENABLE_SCHEMA festgelegt der Buchstabe M, also ist die URL für den konkreten Fall
GET http://localhost:8080/ords/M/metadata-catalog/
Selbstverständlich sehen wir nur das Object die Tabelle ADRESSEN, da es das einzige Objekt ist, was wir REST-Enabled haben.

Bild 1: Ausgabe der Metadaten für das Schema M
Im nächsten Schritt lassen wir uns den Inhalt der Tabelle Adressen ausgeben. Dies wird mit folgender URL erreicht:
GET http://<ORSD-STANDALONE-HOST>:<PORT>/ords/<SchemaAlias>/<ObjectName>
Wichtig an dieser Stelle ist die Groß- und Kleinschreibung!
GET http://localhost:8080/ords/M/ADRESSEN/
Wir sehen jetzt den Inhalt der Tabelle ADRESSEN im JSON-Format.

Bild 2: Ausgabe des Tabelleninhalts von ADRESSEN
Wenn man einen Primary-Key in der Tabelle erstellt hat, kann man gezielt bestimmte Einträge anzeigen lassen.
GET http://<ORSD-STANDALONE-HOST>:<PORT>/ords/<SchemaAlias>/<ObjectName>/<PrimaryKey>
In unserem Fall würde der Aufruf wie folgt aussehen:
GET http://localhost:8080/ords/M/ADRESSEN/1
Es wird nur die Zeile mit dem Primary-Key angezeigt.
Es ist natürlich auch Filtern möglich:
GET http://localhost:8080/ords/M/ADRESSEN/?q={“vorname”:”Max”}

Bild 3: Ausgabe des Tabelleninhalts mit dem Filter auf den Vornamen Max
Möchte man eine zusätzliche Zeile einfügen, muss man dafür POST statt GET mit der Object-URL verwenden.
POST http://localhost:8080/ords/M/ADRESSEN/
Zusätzlich muss man die neue Zeile im JSON-Format angeben und fertig.

Bild 4: Hinzufügen einer weiteren Zeile in die Tabelle ADRESSEN
Im letzten Beispiel wird eine Zeile geändert. Im eigentlichen Sinne ist es kein richtiger Update, sondern es wird die komplette Zeile angegeben, inklusive des zu ändernden Wertes. Die URL enthält anschließend den Primary-Key der zu verändernden Zeile und die Anforderung ist PUT statt POST.

Bild 5: Ändern eine Eintrags in der Tabelle ADRESSEN
Im letzten Schritt wird eine Zeile gelöscht. Dies ist sehr einfach, man gibt den Operator DELETE ein und verknüpft die bekannte URL mit dem zu löschenden Primary-Key.
DELETE http://localhost:8080/ords/M/ADRESSEN/1
Wenn der Primary-Key nicht bekannt ist, kann man auch nach der zu löschenden Zeile filtern. Mit folgendem Ausdruck wird nach dem Vornamen “Martin” gefiltert und die resultierende Zeile gelöscht:
http://localhost:8080/ords/M/ADRESSEN/?q={“vorname”:”Martin”}
Fazit
Diese kurzen Beispiele stellen dar, wie man durch das Erzeugen von Benutzern, Anlegen von ORDS-Objekten, Starten von Web-Servern und Verwenden von AutoREST in wenigen Minuten Oracle-Objekte über eine REST-API erreichen kann. Diese einfachen Beispiele stellen selbstverständlich nur eine kleine Auswahl der Möglichkeiten dar. Es können auch datenbank-spezifische Operationen wie Monitoring, Konfigurationen etc. mittels REST-API durchgeführt werden. Wenn ich Ihr Interesse geweckt habe, probieren Sie das Ganze doch einfach aus!
