diff --git a/lib/private/db/oracleconnection.php b/lib/private/db/oracleconnection.php index 4cec7bc4ae43bb7370101812c3aaad84b1eba5c2..726ac1e4b6d9091fa5dbb1f357c910b464bf3a9a 100644 --- a/lib/private/db/oracleconnection.php +++ b/lib/private/db/oracleconnection.php @@ -47,4 +47,31 @@ class OracleConnection extends Connection { $identifier = $this->quoteKeys($identifier); return parent::delete($tableName, $identifier); } + + /** + * Drop a table from the database if it exists + * + * @param string $table table name without the prefix + */ + public function dropTable($table) { + $table = $this->tablePrefix . trim($table); + $table = $this->quoteIdentifier($table); + $schema = $this->getSchemaManager(); + if($schema->tablesExist(array($table))) { + $schema->dropTable($table); + } + } + + /** + * Check if a table exists + * + * @param string $table table name without the prefix + * @return bool + */ + public function tableExists($table){ + $table = $this->tablePrefix . trim($table); + $table = $this->quoteIdentifier($table); + $schema = $this->getSchemaManager(); + return $schema->tablesExist(array($table)); + } }