diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9a6f64b24f896c6611c66fa2068e8f33cd2bedee..2dbfc7c99b0fe92450130b8b8292eca5a46c1d92 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+1.0.3 (29/11/2024)
+------------------
+
+- [Fix] Problème de chargement de DDL avec Oracle : pas de schémas
+- [Fix] Récupération plus propre & souple du printWorkingDirectory (PWD) en CLI
+
+
 1.0.2 (21/11/2024)
 ------------------
 
diff --git a/src/Command/LoadCommand.php b/src/Command/LoadCommand.php
index e7908305bfc609aa58d355d2f8ee3a6eb242d412..2a83f9ac1f9830852e03652f281059fe43ef4957 100644
--- a/src/Command/LoadCommand.php
+++ b/src/Command/LoadCommand.php
@@ -11,6 +11,7 @@ use Symfony\Component\Console\Style\SymfonyStyle;
 use Unicaen\BddAdmin\BddAwareTrait;
 use Unicaen\BddAdmin\Data\DataManager;
 use Unicaen\BddAdmin\Ddl\Ddl;
+use Unicaen\BddAdmin\Util;
 
 /**
  * Description of LoadCommand
@@ -37,7 +38,7 @@ class LoadCommand extends Command
         $filename = $input->getArgument('filename');
 
         if (!str_starts_with($filename, DIRECTORY_SEPARATOR)){
-            $filename = $_SERVER['PWD'].DIRECTORY_SEPARATOR.$filename;
+            $filename = Util::getPrintWorkingDirectory().DIRECTORY_SEPARATOR.$filename;
         }
 
         if (!file_exists($filename)){
diff --git a/src/Command/SaveCommand.php b/src/Command/SaveCommand.php
index d0220f57079f220b5d6cc85b0a48fec02e28cf90..00b9925eae91b77a427844348982775e532c5a8d 100644
--- a/src/Command/SaveCommand.php
+++ b/src/Command/SaveCommand.php
@@ -11,6 +11,7 @@ use Symfony\Component\Console\Style\SymfonyStyle;
 use Unicaen\BddAdmin\BddAwareTrait;
 use Unicaen\BddAdmin\Data\DataManager;
 use Unicaen\BddAdmin\Ddl\Ddl;
+use Unicaen\BddAdmin\Util;
 
 /**
  * Description of SaveCommand
@@ -37,7 +38,7 @@ class SaveCommand extends Command
         $filename = $input->getArgument('filename');
 
         if (!str_starts_with($filename, DIRECTORY_SEPARATOR)){
-            $filename = $_SERVER['PWD'].DIRECTORY_SEPARATOR.$filename;
+            $filename = Util::getPrintWorkingDirectory().DIRECTORY_SEPARATOR.$filename;
         }
 
         if (file_exists($filename)){
diff --git a/src/Ddl/Ddl.php b/src/Ddl/Ddl.php
index 536ac11fd592aca10a927ec47d4be16fd71e318e..f4def404cb31db0e1643dcb7b3f0dca64030a49d 100644
--- a/src/Ddl/Ddl.php
+++ b/src/Ddl/Ddl.php
@@ -208,9 +208,11 @@ class Ddl implements Iterator, ArrayAccess
         $filters = DdlFilters::normalize($filters);
 
         foreach ($this->data as $ddlType => $ddlConf) {
-            foreach ($ddlConf as $name => $null) {
-                if (!$filters[$ddlType]->match($name)) {
-                    unset($this->data[$ddlType][$name]);
+            if (is_array($ddlConf)) {
+                foreach ($ddlConf as $name => $null) {
+                    if (!$filters[$ddlType]->match($name)) {
+                        unset($this->data[$ddlType][$name]);
+                    }
                 }
             }
         }
diff --git a/src/Util.php b/src/Util.php
index fadce8b2ac4d90674afd0e23f6a516ef426cb866..ce4dcee8e71cbf38299f6df5c36f4f1e29d60f9b 100644
--- a/src/Util.php
+++ b/src/Util.php
@@ -66,4 +66,20 @@ class Util
                 return var_export($var, true);
         }
     }
+
+
+
+    static public function getPrintWorkingDirectory(): string
+    {
+        // Au besoin, la variable SCRIPT_LAUNCH_DIR pourra être initialisée en BASH : export SCRIPT_LAUNCH_DIR="$PWD"
+        $dir = getenv('SCRIPT_LAUNCH_DIR');
+        if (!$dir){
+            $dir = getenv('PWD');
+        }
+        if (!$dir){
+            $dir = getcwd();
+        }
+
+        return $dir;
+    }
 }
\ No newline at end of file