<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div><span style="font-family:Courier New,Courier,monospace;">Hallo Thomas,</span></div>

<div> </div>

<div><span style="font-family:Courier New,Courier,monospace;">vielen Dank für Deine Antwort, wenn es ok ist würde ich die Test-Datei dem DB-Provider zeigen.</span></div>

<div><span style="font-family:Courier New,Courier,monospace;">Ich kann von hier keine Datenbanken erstellen.</span></div>

<div><span style="font-family:Courier New,Courier,monospace;">Zu den Restriktionen, die Punkte 'Nicht-Leerbeschränkung erzwingen' und 'Beschränkung erzwingen'</span></div>

<div><span style="font-family:Courier New,Courier,monospace;">sind nicht aktiv. Die beiden Anderen Punkte, 'Nicht Null' und 'Eindeutig' sind aktiv und ausgegraut.</span></div>

<div> </div>

<div><font face="Courier New, Courier, monospace">Nochmal danke für Deine Mühe, jetzt muss ich erst einmal den Termin abwarten. </font></div>

<div> </div>

<div><span style="font-family:Courier New,Courier,monospace;">Gruß Peter</span></div>

<div> </div>

<div> 
<div> 
<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"><b>Gesendet:</b> Mittwoch, 03. November 2021 um 17:45 Uhr<br/>
<b>Von:</b> "Thomas B" <rdbath.regiodata@gmail.com><br/>
<b>An:</b> "Peter K." <webentry@web.de><br/>
<b>Cc:</b> "FOSSGIS" <FOSSGIS-Talk-Liste@fossgis.de><br/>
<b>Betreff:</b> Re: [FOSSGIS-Talk] QGIS und ORACL-Datenbank</div>

<div name="quoted-content">
<div>
<div>Hallo Peter,</div>

<div>anbei ein Beispiel-DDL, das bei mir ohne Probleme im Zusammenspiel mit QGIS funktioniert: <a href="https://gist.github.com/thbaumann/6f2b5da6e5f6b74f802dde7230835055" target="_blank">https://gist.github.com/thbaumann/6f2b5da6e5f6b74f802dde7230835055</a></div>

<div> </div>

<div>Vielleicht mal bei dir den Testlayer erzeugen und gegenprüfen. In QGIS muss man halt noch im Attributformular für die ID-Spalte die Restriktion rausnehmen, damit man speichern kann ohne Einträge in der ID-Spalte gesetzt zu haben aber wenn ich richtig gelesen habe hast du das ja getan.</div>

<div> </div>

<div>Ansonsten vielleicht auch mal abseits von QGIS versuchen den Trigger anzusprechen und schauen, ob der vielleicht generell wo hängt unabhängig von QGIS?</div>

<div> </div>

<div>Zu deiner Frage des Zusammenspiels von QGIS und Oracle: Ich denke der Oracle-Provider bräuchte mal etwas Pflege...gerade auch was das Erkennen der Primärschlüsselspalte angeht aber jetzt beim konkreten Beispiel kann ich da wiegesagt die Sachen speichern egal ob ich Werte eingebe oder die Sequenz ziehen lasse.</div>

<div> </div>

<div>Viele Grüße,</div>

<div>Thomas</div>

<div> </div>
</div>
 

<div class="gmail_quote">
<div class="gmail_attr">Am Di., 2. Nov. 2021 um 15:50 Uhr schrieb Peter K. <<a href="mailto:webentry@web.de" onclick="parent.window.location.href='mailto:webentry@web.de'; return false;" target="_blank">webentry@web.de</a>>:</div>

<blockquote class="gmail_quote" style="margin: 0.0px 0.0px 0.0px 0.8ex;border-left: 1.0px solid rgb(204,204,204);padding-left: 1.0ex;">Hallo an alle und an Thomas,<br/>
<br/>
leider nochmal das Thema ORACLE-DB und speziell zur automatischen Erzeugung der ID in der DB-Tabelle.<br/>
Kurz noch zur Info, im April hat Thomas u.a. diesen Tipp gegeben:<br/>
>>>>><br/>
Zum unterschiedlichen Verhalten der QGIS-Installationen:<br/>
In QGIS selbst könnte man in der Konsole schauen, was als ORACLE_HOME und<br/>
TNS_ADMIN hinterlegt ist und ob da die tnsnames.ora angesprochen wird, die<br/>
benutzt werden sollte:<br/>
import os<br/>
print(os.environ['ORACLE_HOME'])<br/>
print(os.environ['TNS_ADMIN'])<br/>
<<<<<<br/>
<br/>
Ergebnis hier zu:<br/>
print(os.environ['TNS_ADMIN']) = \\OracleConf\DATEN\pub\OracleConf\ORA<br/>
<br/>
print(os.environ['ORACLE_HOME']) =<br/>
<br/>
Traceback (most recent call last):<br/>
  File "C:\PROGRA~1\QGIS3~1.16\apps\Python37\lib\code.py", line 90, in runcode<br/>
    exec(code, self.locals)<br/>
  File "<input>", line 1, in <module><br/>
  File "<string>", line 2, in <module><br/>
  File "C:\PROGRA~1\QGIS3~1.16\apps\Python37\lib\os.py", line 678, in __getitem__<br/>
    raise KeyError(key) from None<br/>
KeyError: 'ORACLE_HOME'<br/>
<br/>
Das nur nochmal zur Info an Thomas, hatte ich wohl damals nicht mehr erwähnt.<br/>
<br/>
Nun zurück zur ID, in der verwendeten DB-Tabelle gibt es vier Spalten mit der Bedingung 'NOT NULL'.<br/>
Bei zwei Attributspalten sind diese recht einfach, und werden mit entsprechenden QGIS-Vorgaben abgearbeitet.<br/>
In die vierte DB-Spalte, 'ID-KOPIE' wird die DB-Tabellen 'ID' nochmal hinein kopiert, dies ist für die derzeitig verwendete<br/>
CAD/GIS-Anwendung wohl nötig. Auch dies wird über einen Vorgabewert in QGIS gelöst, obwohl es dafür auch<br/>
einen Trigger in der ORACLE-DB gibt.<br/>
<br/>
Als Umgehungslösung wird derzeit aber auch die Erzeugung der 'ID' mit einem Eintrag im Feld 'Vorgabewert'<br/>
durchgeführt.<br/>
Eintrag: CASE WHEN "ID" is NULL THEN maximum( "ID")+1 ELSE "ID" END<br/>
<br/>
Das ist natürlich keine gute Lösung.<br/>
<br/>
Ist der o.g. Vorgabewert nicht gesetzt, bekomme ich diese Fehlermeldung:<br/>
>>>>>>>>><br/>
Konnte Änderungen am Layer FL_NUTZUNG_MULTI nicht festschreiben<br/>
<br/>
Fehler: FEHLER: Objekt nicht hinzugefügt.<br/>
Datenanbieterfehler:<br/>
Oracle-Fehler beim Attributhinzufügen: Oracle-Fehler: Konnte Objekt -27 nicht einfügen<br/>
SQL: ORA-20001: Primärschlüssel nicht gesetzt! Ids: -999999 / -999999<br/>
ORA-06512: in "FPLAN.FL_NUTZUNG_B_IUD", Zeile 183<br/>
ORA-04088: Fehler bei der Ausführung von Trigger 'FPLAN.FL_NUTZUNG_B_IUD'<br/>
Konnte Anweisung nicht ausführen<br/>
Fehler: INSERT INTO "FPLAN"."FL_NUTZUNG"("GEOMETRIE","ID","NUTZUNG","NUTZUNG_LV","FL_CODE","BEMERKUNG","AREA","ALTLAST","AL_NAME",<br/>
"AFM","GR_RING","BN","BRACHE","DB_FC_1","DB_FC_2","DB_FC_TEXT","KG_NR","KG_BEMERKUNG","KONTROLLE","ST_LA_SA","OS_LSA","FS_LSA",<br/>
"SO_NUTZUNG","CREATOR","CREATED","EDITOR","EDITED","ID_KOPIE","BEIPLANDARSTELLUNG","LSG","NSG","KG_RNAHME","BPLANNR","MWE",<br/>
"DB_FC_TEXT_2") VALUES (:a,:bb,:bc,:bd,:be,:bf,:bg,:bh,:bi,:bj,:bk,:bl,:bm,:bn,:bo,:bp,:cba,:cbb,:cbc,:cbd,:cbe,:cbf,:cbg,:cbh,<br/>
:cbi,:cbj,:cbk,:cbl,:cbm,:cbn,:cbo,:cbp,:cca,:ccb,:ccc)<br/>
<<<<<<<<<<<br/>
<br/>
So weit nochmal der Stand hier, bei der Nutzung einer ORACLE-DB mit QGIS.<br/>
<br/>
Nächste Woche gibt es ein Gespräch beim DB-Betreiber. Darum wollte ich auch mal Fragen, ob es vielleicht spezielle Punkte gibt<br/>
die Datenbankseitig für die Nutzung mit QGIS zu beachten sind. Scheinbar reagieren ja die ORACLE-Trigger nicht auf die 'QGIS'<br/>
Rückmeldungen.<br/>
So genug Text, Gruß Peter<br/>
<br/>
Verwendete QGIS-Versionen: 3.16.11 und 3.18.3<br/>
--<br/>
....................................................................<br/>
FOSSGIS Veranstaltungen<br/>
<a href="https://www.fossgis.de/news/fossgis-events/" target="_blank">https://www.fossgis.de/news/fossgis-events/</a><br/>
<br/>
FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem<br/>
GIS-Bereich und Freier Geodaten!<br/>
<a href="https://www.fossgis.de/" target="_blank">https://www.fossgis.de/</a>             <a href="https://twitter.com/FOSSGIS_Verein" target="_blank">https://twitter.com/FOSSGIS_Verein</a><br/>
<br/>
____________________________________________________________________<br/>
FOSSGIS-Talk-Liste mailing list<br/>
<a href="mailto:FOSSGIS-Talk-Liste@fossgis.de" onclick="parent.window.location.href='mailto:FOSSGIS-Talk-Liste@fossgis.de'; return false;" target="_blank">FOSSGIS-Talk-Liste@fossgis.de</a><br/>
<a href="https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste" target="_blank">https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste</a></blockquote>
</div>
</div>
</div>
</div>
</div></div></body></html>