From be7c3f095d25e76ed85c1200a708c07ef0e758c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ale=C5=A1=20Culek?= Date: Tue, 9 Aug 2016 22:37:45 +0200 Subject: [PATCH] Implemented OracleDriver::getColumns() (#233) --- src/Dibi/Drivers/OracleDriver.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Dibi/Drivers/OracleDriver.php b/src/Dibi/Drivers/OracleDriver.php index 921972bd..5c87019f 100644 --- a/src/Dibi/Drivers/OracleDriver.php +++ b/src/Dibi/Drivers/OracleDriver.php @@ -466,7 +466,20 @@ class OracleDriver implements Dibi\Driver, Dibi\ResultDriver, Dibi\Reflector */ public function getColumns($table) { - throw new Dibi\NotImplementedException; + $res = $this->query('SELECT * FROM "ALL_TAB_COLUMNS" WHERE "TABLE_NAME" = ' . $this->escapeText($table)); + $columns = []; + while ($row = $res->fetch(TRUE)) { + $columns[] = [ + 'table' => $row['TABLE_NAME'], + 'name' => $row['COLUMN_NAME'], + 'nativetype' => $row['DATA_TYPE'], + 'size' => isset($row['DATA_LENGTH']) ? $row['DATA_LENGTH'] : NULL, + 'nullable' => $row['NULLABLE'] === 'Y', + 'default' => $row['DATA_DEFAULT'], + 'vendor' => $row, + ]; + } + return $columns; }