[vz-users] Oracle als Datenbank?

Stephan Mühlstrasser stephan.muehlstrasser at gmail.com
So Jun 6 16:54:23 CEST 2021


Hallo Andreas,

> Sollte gehen.
> 
> Viele Grüße, Andreas

danke für den Hinweis, dass es prinzipiell funktionieren sollte. Ich 
habe nun mein Glück versucht:

- Aktueller Stand des volkszaehler.org Repositories (Commit 
59393e54b0a7531f23d8ac9e336889a9c00a24e5)
- Oracle Cloud VM mit Ubuntu 20.04 Image
- Oracle Autonomous Database Version 19c
- Oracle Instant Client Version 19.11.0.0.0
- PHP Oracle OCI8 Treiber
- Apache 2 mit PHP 7.4 in der Variante "Apache als Server" manuell 
aufgesetzt

Ich habe die MySQL-SQL-Anweisungen in install.sh mit meinen beschränkten 
Datenbank-Kenntnissen auf Oracle-SQL-Anweisungen abgebildet. Da ich die 
Benutzer-Konzepte von MySQL nicht 1:1 auf Oracle abbilden konnte, läuft 
im ersten Versuch alles unter dem Oracle-Admin-Account.

Das hat soweit geklappt, dass die doctrine-Aufrufe für 
"orm:schema-tool:create" and "orm:generate-proxies" erfolgreich 
durchgelaufen sind. Danach kann ich die neuen Tabellen in der 
Oracle-Datenbank sehen.

Wenn ich dann das Web-Frontend aufrufe, funktioniert es aber erst mal 
nicht. Und es sieht so aus, als wenn Oracle dann doch nicht ohne 
weiteres benutzt werden kann. Wenn ich versuche, einen neuen lokalen 
Kanal anzulegen, dann tauchen folgende Fehlermeldungen in den 
Chrome-Entwicklertools auf:

Request 1 mit Response:

https://<meine 
domain>/api/data/a301d8d0-903b-1234-94bb-d943d061b6a8.json?unique=1622989660516&from=1622903221701&to=1622989621701&tuples=153

{"version":"0.3","exception":{"message":"Cannot instantiate abstract 
class 
Volkszaehler\\Interpreter\\SQL\\SQLOptimizer","type":"Error","code":0}}

Wenn ich mir die Methode SQLOptimizer::staticFactory() in 
lib/Interpreter/SQL/SQLOptimizer.php anschaue, dann ist die für Oracle 
nicht vorbereitet.

Request 2 mit Response:

https://<meine domain>/api/entity.json?unique=1622989629337

{"version":"0.3","exception":{"message":"An exception occurred while 
executing 'SELECT e0_.id AS ID_0, e0_.uuid AS UUID_1, e0_.type AS 
TYPE_2, p1_.pkey AS PKEY_3, p1_.value AS VALUE_4, e0_.class AS CLASS_5, 
p1_.entity_id AS ENTITY_ID_6 FROM entities e0_ LEFT JOIN properties p1_ 
ON e0_.id = p1_.entity_id INNER JOIN properties p2_ ON e0_.id = 
p2_.entity_id WHERE (p2_.pkey = ? AND p2_.value = ?) AND e0_.class IN 
('channel', 'aggregator') ORDER BY p1_.pkey ASC' with params 
[\"public\", 1]:\n\nORA-00932: inconsistent datatypes: expected - got 
CLOB","type":"DriverException","code":0}}

Diesen Fehler kann ich nicht einordnen, vielleicht ein Problem in 
Doctrine selbst.

So ohne weiteres scheint es mit Oracle wohl doch nicht zu gehen. Ich 
werde den Versuch wohl aufgeben.

Viele Grüße
Stephan


Mehr Informationen über die Mailingliste volkszaehler-users