From 2c6bc430b0cd031688f90900c25de98d5ae813b6 Mon Sep 17 00:00:00 2001 From: Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr> Date: Mon, 18 Jan 2021 15:34:46 +0100 Subject: [PATCH] Suppression du support (impossible) de la fonction REGEXP_LIKE et remplacement par REGEXP_COUNT() --- config/module.config.php | 6 +++--- .../Query/Functions/{RegexpLike.php => RegexpCount.php} | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) rename src/UnicaenOracle/ORM/Query/Functions/{RegexpLike.php => RegexpCount.php} (79%) diff --git a/config/module.config.php b/config/module.config.php index b8f0eeb..44c707f 100755 --- a/config/module.config.php +++ b/config/module.config.php @@ -3,14 +3,14 @@ namespace UnicaenOracle; use Doctrine\DBAL\Driver\OCI8\Driver as OCI8; -use UnicaenOracle\ORM\Query\Functions\PasHistorise; use UnicaenOracle\Controller\Factory\IndexControllerFactory; use UnicaenOracle\Controller\IndexController; use UnicaenOracle\DBAL\Event\Listeners\OracleSessionInit; use UnicaenOracle\ORM\Query\Functions\Chr; use UnicaenOracle\ORM\Query\Functions\CompriseEntre; use UnicaenOracle\ORM\Query\Functions\Convert; -use UnicaenOracle\ORM\Query\Functions\RegexpLike; +use UnicaenOracle\ORM\Query\Functions\PasHistorise; +use UnicaenOracle\ORM\Query\Functions\RegexpCount; use UnicaenOracle\ORM\Query\Functions\Replace; use UnicaenOracle\Service\DataService; use UnicaenOracle\Service\SchemaService; @@ -28,7 +28,7 @@ return [ 'CHR' => Chr::class, 'CONVERT' => Convert::class, 'REPLACE' => Replace::class, - 'REGEXP_LIKE' => RegexpLike::class, + 'REGEXP_COUNT' => RegexpCount::class, // fonctions du package PL/SQL "UNICAEN_ORACLE" (cf. "../data/package.sql") 'compriseEntre' => CompriseEntre::class, diff --git a/src/UnicaenOracle/ORM/Query/Functions/RegexpLike.php b/src/UnicaenOracle/ORM/Query/Functions/RegexpCount.php similarity index 79% rename from src/UnicaenOracle/ORM/Query/Functions/RegexpLike.php rename to src/UnicaenOracle/ORM/Query/Functions/RegexpCount.php index 4cdc4b3..f97f148 100644 --- a/src/UnicaenOracle/ORM/Query/Functions/RegexpLike.php +++ b/src/UnicaenOracle/ORM/Query/Functions/RegexpCount.php @@ -7,7 +7,11 @@ use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; -class RegexpLike extends FunctionNode +/** + * Class RegexpCount + * @see https://stackoverflow.com/questions/32052563/doctrine-and-oracle-regexp-like + */ +class RegexpCount extends FunctionNode { public $field; public $posixPattern; @@ -24,7 +28,7 @@ class RegexpLike extends FunctionNode public function getSql(SqlWalker $sqlWalker) { - return sprintf('REGEXP_LIKE(%s, %s)', + return sprintf('REGEXP_COUNT(%s, %s)', $this->field->dispatch($sqlWalker), $this->posixPattern->dispatch($sqlWalker)); } -- GitLab