Some changes to the OCI8 (Oracle) driver
diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php
index 1f571e5..67bb040 100644
--- a/system/database/drivers/oci8/oci8_driver.php
+++ b/system/database/drivers/oci8/oci8_driver.php
@@ -66,6 +66,8 @@
 	protected $_count_string = 'SELECT COUNT(1) AS ';
 	protected $_random_keyword = ' ASC'; // not currently supported
 
+	protected $_reserved_identifiers = array('*', 'rownum');
+
 	// Set "auto commit" by default
 	public $commit_mode = OCI_COMMIT_ON_SUCCESS;
 
@@ -464,11 +466,12 @@
 	 */
 	protected function _list_tables($prefix_limit = FALSE)
 	{
-		$sql = 'SELECT TABLE_NAME FROM ALL_TABLES';
+		$sql = 'SELECT "TABLE_NAME" FROM "ALL_TABLES"';
 
 		if ($prefix_limit !== FALSE && $this->dbprefix !== '')
 		{
-			return $sql." WHERE TABLE_NAME LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr);
+			return $sql.' WHERE "TABLE_NAME" LIKE \''.$this->escape_like_str($this->dbprefix)."%' "
+				.sprintf($this->_like_escape_str, $this->_like_escape_chr);
 		}
 
 		return $sql;
@@ -486,7 +489,7 @@
 	 */
 	protected function _list_columns($table = '')
 	{
-		return 'SELECT COLUMN_NAME FROM all_tab_columns WHERE table_name = \''.$table.'\'';
+		return 'SELECT "COLUMN_NAME" FROM "all_tab_columns" WHERE "TABLE_NAME" = '.$this->escape($table);
 	}
 
 	// --------------------------------------------------------------------
@@ -501,7 +504,7 @@
 	 */
 	protected function _field_data($table)
 	{
-		return 'SELECT * FROM '.$table.' WHERE rownum = 1';
+		return 'SELECT * FROM '.$this->protect_identifiers($table).' WHERE rownum = 1';
 	}
 
 	// --------------------------------------------------------------------