Rework deprecated OCI8 exceptions

parent b7ee1fbc
<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Driver\OCI8\Exception;
use Doctrine\DBAL\Driver\OCI8\OCI8Exception;
use function sprintf;
/**
* @internal
*
* @psalm-immutable
*/
final class NonTerminatedStringLiteral extends OCI8Exception
{
public static function new(int $offset): self
{
return new self(
sprintf(
'The statement contains non-terminated string literal starting at offset %d.',
$offset
)
);
}
}
<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Driver\OCI8\Exception;
use Doctrine\DBAL\Driver\OCI8\OCI8Exception;
/**
* @internal
*
* @psalm-immutable
*/
final class SequenceDoesNotExist extends OCI8Exception
{
public static function new(): self
{
return new self('lastInsertId failed: Query was executed but no result was returned.');
}
}
<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Driver\OCI8\Exception;
use Doctrine\DBAL\Driver\OCI8\OCI8Exception;
use function sprintf;
/**
* @internal
*
* @psalm-immutable
*/
final class UnknownParameterIndex extends OCI8Exception
{
public static function new(int $index): self
{
return new self(
sprintf('Could not find variable mapping with index %d, in the SQL statement', $index)
);
}
}
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace Doctrine\DBAL\Driver\OCI8; namespace Doctrine\DBAL\Driver\OCI8;
use Doctrine\DBAL\Driver\Connection as ConnectionInterface; use Doctrine\DBAL\Driver\Connection as ConnectionInterface;
use Doctrine\DBAL\Driver\OCI8\Exception\SequenceDoesNotExist;
use Doctrine\DBAL\Driver\ServerInfoAwareConnection; use Doctrine\DBAL\Driver\ServerInfoAwareConnection;
use Doctrine\DBAL\ParameterType; use Doctrine\DBAL\ParameterType;
use UnexpectedValueException; use UnexpectedValueException;
...@@ -166,7 +167,7 @@ class OCI8Connection implements ConnectionInterface, ServerInfoAwareConnection ...@@ -166,7 +167,7 @@ class OCI8Connection implements ConnectionInterface, ServerInfoAwareConnection
$result = $stmt->fetchColumn(); $result = $stmt->fetchColumn();
if ($result === false) { if ($result === false) {
throw new OCI8Exception('lastInsertId failed: Query was executed but no result was returned.'); throw SequenceDoesNotExist::new();
} }
return (int) $result; return (int) $result;
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
namespace Doctrine\DBAL\Driver\OCI8; namespace Doctrine\DBAL\Driver\OCI8;
use Doctrine\DBAL\Driver\FetchUtils; use Doctrine\DBAL\Driver\FetchUtils;
use Doctrine\DBAL\Driver\OCI8\Exception\NonTerminatedStringLiteral;
use Doctrine\DBAL\Driver\OCI8\Exception\UnknownParameterIndex;
use Doctrine\DBAL\Driver\Result; use Doctrine\DBAL\Driver\Result;
use Doctrine\DBAL\Driver\Statement as StatementInterface; use Doctrine\DBAL\Driver\Statement as StatementInterface;
use Doctrine\DBAL\Driver\StatementIterator; use Doctrine\DBAL\Driver\StatementIterator;
...@@ -31,7 +33,6 @@ use function oci_num_rows; ...@@ -31,7 +33,6 @@ use function oci_num_rows;
use function oci_parse; use function oci_parse;
use function preg_match; use function preg_match;
use function preg_quote; use function preg_quote;
use function sprintf;
use function substr; use function substr;
use const OCI_ASSOC; use const OCI_ASSOC;
...@@ -163,10 +164,7 @@ class OCI8Statement implements IteratorAggregate, StatementInterface, Result ...@@ -163,10 +164,7 @@ class OCI8Statement implements IteratorAggregate, StatementInterface, Result
} while ($result); } while ($result);
if ($currentLiteralDelimiter) { if ($currentLiteralDelimiter) {
throw new OCI8Exception(sprintf( throw NonTerminatedStringLiteral::new($tokenOffset - 1);
'The statement contains non-terminated string literal starting at offset %d',
$tokenOffset - 1
));
} }
$fragments[] = substr($statement, $fragmentOffset); $fragments[] = substr($statement, $fragmentOffset);
...@@ -286,7 +284,7 @@ class OCI8Statement implements IteratorAggregate, StatementInterface, Result ...@@ -286,7 +284,7 @@ class OCI8Statement implements IteratorAggregate, StatementInterface, Result
{ {
if (is_int($param)) { if (is_int($param)) {
if (! isset($this->_paramMap[$param])) { if (! isset($this->_paramMap[$param])) {
throw new OCI8Exception(sprintf('Could not find variable mapping with index %d, in the SQL statement', $param)); throw UnknownParameterIndex::new($param);
} }
$param = $this->_paramMap[$param]; $param = $this->_paramMap[$param];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment