Recht herzlichen Dank für die raschen Rückmeldungen. Ich konnte eure Ideen mittlerweile durchdenken bzw. auch evaluieren:


Command Defaults überschreiben:
- Für CRTSQLRPGI werden bei uns seit längerer Zeit die angeführten Überschreibungen bereits durchgeführt, weil wir das ohnehin für unsere SQLRPGLE Programme benötigen, aber das greift beim Aufruf von "CREATE OR REPLACE FUNCTION" nicht. Wie Fuerchau richtig angemerkt hat, führe ich bei der Deploymentautomatisierung den SQL Sourcecode mittels RUNSQLSTM aus. In der Entwicklung wird der SQL Sourcecode direkt über ein Entwicklungstool wie IBM i ACS oder DBeaver ausgeführt.


- Durch die Erstellung einer SQL Function wird im Hintergrund auch ein Objekt erstellt. Dank diesem Link [1] habe ich herausgefunden, dass dieses Objekt mittels CRTSQLCI erstellt wurde. Deshalb hätte ich die Command Defaults für diesen CL Befehl angepasst, aber das bringt nichts. Meine Vermutung ist, dass durch "CREATE OR REPLACE FUNCTION" die Werte für USRPRF und DYNUSRPRF an CRTSQLCI im Hintergrund übergeben werden und die Command Defaults gar nicht zum Zug kommen.


Präprozessor:
Wir haben ein SQLRPGLE Programm entwickelt, das zuerst mittels "EXEC SQL" den SET OPTION Aufruf ausführt und danach erneut mittels "EXEC SQL" den Inhalt unserer .SQL Datei ausführt. Ich habe dann das dadurch erstellte Objekt wieder mittels PRTSQLINF geprüft und die Parameter USRPRF und DYNUSRPRF wurden dann wie gewünscht mit *OWNER angezeigt. Somit funktioniert dieser Ansatz für unser automatisiertes Deployment. Einziger Nachteil ist, dass der Präprozessor während der Entwicklung neuer Functions nicht direkt verwendet werden kann, weil meine Kolleginnen und Kollegen eben in einem SQL Entwicklungswerkzeug die Functions entwickeln und laufend den Sourcecode ausführen. In diesem Fall müssten wir also unseren Entwicklungsprozess entsprechend anpassen, dass bei der Entwicklung auch der SQL Code in das IFS übertragen und der Präprozessor aufgerufen wird.


Ergebnis:
Wir werden voraussichtlich den Weg gehen, dass wir die SET OPTION Statements in alle CREATE OR REPLACE FUNCTION Statements einfügen, wie Birgitta dies auch angemerkt hat.
Zusätzlich werde ich noch einen RFE anlegen mit der Bitte, dass die Compiler-Optionen auch bei SQL DDL Statements an einer zentralen Stelle überschrieben werden können. In der QAQQINI gibt es ja einige Möglichkeiten zum Überschreiben/Konfigurieren von Parametern für die SQL Ausführung, aber eben leider nicht die Möglichkeiten, die Compiler Options zu überschreiben.

Wenn ich den RFE angelegt habe werde ich die URL hier auch posten, falls wer dafür voten möchte

Nochmals danke für euren Input!


[1] https://www.nicklitten.com/rpgle-and...ner-conundrum/