diff --git a/dibi/bridges/Nette-2.1/DibiNettePanel.php b/dibi/bridges/Nette-2.1/DibiNettePanel.php index f938a874..c8104d66 100644 --- a/dibi/bridges/Nette-2.1/DibiNettePanel.php +++ b/dibi/bridges/Nette-2.1/DibiNettePanel.php @@ -104,7 +104,7 @@ class DibiNettePanel extends DibiObject implements Nette\Diagnostics\IBarPanel try { $backup = array($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime); $event->connection->onEvent = NULL; - $cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN' : 'EXPLAIN'); + $cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN FOR' : 'EXPLAIN'); $explain = dibi::dump($event->connection->nativeQuery("$cmd $event->sql"), TRUE); } catch (DibiException $e) {} list($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime) = $backup; diff --git a/dibi/bridges/Tracy/Panel.php b/dibi/bridges/Tracy/Panel.php index 0115c957..dac19e4f 100644 --- a/dibi/bridges/Tracy/Panel.php +++ b/dibi/bridges/Tracy/Panel.php @@ -107,7 +107,7 @@ class Panel extends \DibiObject implements Tracy\IBarPanel try { $backup = array($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime); $event->connection->onEvent = NULL; - $cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN' : 'EXPLAIN'); + $cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN FOR' : 'EXPLAIN'); $explain = dibi::dump($event->connection->nativeQuery("$cmd $event->sql"), TRUE); } catch (\DibiException $e) {} list($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime) = $backup; diff --git a/dibi/drivers/DibiOracleDriver.php b/dibi/drivers/DibiOracleDriver.php index 145074a2..7ec760f6 100644 --- a/dibi/drivers/DibiOracleDriver.php +++ b/dibi/drivers/DibiOracleDriver.php @@ -103,7 +103,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri { $res = oci_parse($this->connection, $sql); if ($res) { - oci_execute($res, $this->autocommit ? OCI_COMMIT_ON_SUCCESS : OCI_DEFAULT); + @oci_execute($res, $this->autocommit ? OCI_COMMIT_ON_SUCCESS : OCI_DEFAULT); $err = oci_error($res); if ($err) { throw new DibiDriverException($err['message'], $err['code'], $sql); @@ -365,11 +365,12 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri $count = oci_num_fields($this->resultSet); $columns = array(); for ($i = 1; $i <= $count; $i++) { + $type = oci_field_type($this->resultSet, $i); $columns[] = array( 'name' => oci_field_name($this->resultSet, $i), 'table' => NULL, 'fullname' => oci_field_name($this->resultSet, $i), - 'nativetype'=> oci_field_type($this->resultSet, $i), + 'nativetype' => $type === 'NUMBER' && oci_field_scale($this->resultSet, $i) === 0 ? 'INTEGER' : $type, ); } return $columns;