ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
MDB2_Driver_Manager_oci8 Class Reference
+ Inheritance diagram for MDB2_Driver_Manager_oci8:
+ Collaboration diagram for MDB2_Driver_Manager_oci8:

Public Member Functions

 createDatabase ($name)
 create a new database
 dropDatabase ($name)
 drop an existing database
 _makeAutoincrement ($name, $table, $start=1)
 add an autoincrement sequence + trigger
 _dropAutoincrement ($table)
 drop an existing autoincrement sequence + trigger
 _getTemporaryTableQuery ()
 A method to return the required SQL string that fits between CREATE ...
 createTable ($name, $fields, $options=array())
 create a new table
 dropTable ($name)
 drop an existing table
 alterTable ($name, $changes, $check)
 alter an existing table
 listDatabases ()
 list all databases
 listUsers ()
 list all users
 listViews ()
 list all views in the current database
 listFunctions ()
 list all functions in the current database
 listTables ()
 list all tables in the current database
 listTableFields ($table)
 list all fields in a table in the current database
 listTableIndexes ($table)
 list all indexes in a table
 listTableConstraints ($table)
 list all constraints in a table
 createSequence ($seq_name, $start=1)
 create sequence
 dropSequence ($seq_name)
 drop existing sequence
 listSequences ()
 list all sequences in the current database
- Public Member Functions inherited from MDB2_Driver_Manager_Common
 getFieldDeclarationList ($fields)
 Get declaration of a number of field in bulk.
 _fixSequenceName ($sqn, $check=false)
 Removes any formatting in an sequence name using the 'seqname_format' option.
 _fixIndexName ($idx)
 Removes any formatting in an index name using the 'idxname_format' option.
 _getCreateTableQuery ($name, $fields, $options=array())
 Create a basic SQL query for a new table creation.
 listViews ($database=null)
 list all views in the current database
 listTableViews ($table)
 list the views in the database that reference a given table
 listTableTriggers ($table=null)
 list all triggers in the database that reference a given table
 listTables ($database=null)
 list all tables in the current database
 createIndex ($table, $name, $definition)
 Get the stucture of a field into an array.
 dropIndex ($table, $name)
 drop existing index
 createConstraint ($table, $name, $definition)
 create a constraint on a table
 dropConstraint ($table, $name, $primary=false)
 drop existing constraint
 listSequences ($database=null)
 list all sequences in the current database
- Public Member Functions inherited from MDB2_Module_Common
 __construct ($db_index)
 Constructor.
 MDB2_Module_Common ($db_index)
 PHP 4 Constructor.
getDBInstance ()
 Get the instance of MDB2 associated with the module instance.

Additional Inherited Members

- Data Fields inherited from MDB2_Module_Common
 $db_index

Detailed Description

Definition at line 56 of file oci8.php.

Member Function Documentation

MDB2_Driver_Manager_oci8::_dropAutoincrement (   $table)

drop an existing autoincrement sequence + trigger

Parameters
string$tablename of the table
Returns
mixed MDB2_OK on success, a MDB2 error on failure private

Definition at line 220 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = strtoupper($table);
$trigger_name = $table . '_AI_PK';
$trigger_name_quoted = $db->quote($trigger_name, 'text');
$query = 'SELECT trigger_name FROM user_triggers';
$query.= ' WHERE trigger_name='.$trigger_name_quoted.' OR trigger_name='.strtoupper($trigger_name_quoted);
$trigger = $db->queryOne($query);
if (PEAR::isError($trigger)) {
return $trigger;
}
if ($trigger) {
$trigger_name = $db->quoteIdentifier($table . '_AI_PK', true);
$trigger_sql = 'DROP TRIGGER ' . $trigger_name;
$result = $db->exec($trigger_sql);
if (PEAR::isError($result)) {
return $db->raiseError($result, null, null,
'trigger for autoincrement PK could not be dropped', __FUNCTION__);
}
$result = $this->dropSequence($table);
if (PEAR::isError($result)) {
return $db->raiseError($result, null, null,
'sequence for autoincrement PK could not be dropped', __FUNCTION__);
}
$index_name = $table . '_AI_PK';
$result = $this->dropConstraint($table, $index_name);
if (PEAR::isError($result)) {
return $db->raiseError($result, null, null,
'primary key for autoincrement PK could not be dropped', __FUNCTION__);
}
}
return MDB2_OK;
}
MDB2_Driver_Manager_oci8::_getTemporaryTableQuery ( )

A method to return the required SQL string that fits between CREATE ...

TABLE to create the table as a temporary table.

Returns
string The string required to be placed between "CREATE" and "TABLE" to generate a temporary table, if possible.

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 273 of file oci8.php.

{
return 'GLOBAL TEMPORARY';
}
MDB2_Driver_Manager_oci8::_makeAutoincrement (   $name,
  $table,
  $start = 1 
)

add an autoincrement sequence + trigger

Parameters
string$namename of the PK field
string$tablename of the table
string$startstart value for the sequence
Returns
mixed MDB2_OK on success, a MDB2 error on failure private

Definition at line 144 of file oci8.php.

References $name, $query, MDB2_Driver_Manager_Common\createConstraint(), createSequence(), MDB2_Module_Common\getDBInstance(), and PEAR\isError().

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = strtoupper($table);
$index_name = $table . '_AI_PK';
$definition = array(
'primary' => true,
'fields' => array($name => true),
);
$result = $this->createConstraint($table, $index_name, $definition);
if (PEAR::isError($result)) {
return $db->raiseError($result, null, null,
'primary key for autoincrement PK could not be created', __FUNCTION__);
}
if (is_null($start)) {
$db->beginTransaction();
$query = 'SELECT MAX(' . $db->quoteIdentifier($name, true) . ') FROM ' . $db->quoteIdentifier($table, true);
$start = $this->db->queryOne($query, 'integer');
if (PEAR::isError($start)) {
return $start;
}
++$start;
$result = $this->createSequence($table, $start);
$db->commit();
} else {
$result = $this->createSequence($table, $start);
}
if (PEAR::isError($result)) {
return $db->raiseError($result, null, null,
'sequence for autoincrement PK could not be created', __FUNCTION__);
}
$sequence_name = $db->getSequenceName($table);
$trigger_name = $db->quoteIdentifier($table . '_AI_PK', true);
$table = $db->quoteIdentifier($table, true);
$name = $db->quoteIdentifier($name, true);
$trigger_sql = '
CREATE TRIGGER '.$trigger_name.'
BEFORE INSERT
ON '.$table.'
FOR EACH ROW
DECLARE
last_Sequence NUMBER;
last_InsertID NUMBER;
BEGIN
SELECT '.$sequence_name.'.NEXTVAL INTO :NEW.'.$name.' FROM DUAL;
IF (:NEW.'.$name.' IS NULL OR :NEW.'.$name.' = 0) THEN
SELECT '.$sequence_name.'.NEXTVAL INTO :NEW.'.$name.' FROM DUAL;
ELSE
SELECT NVL(Last_Number, 0) INTO last_Sequence
FROM User_Sequences
WHERE UPPER(Sequence_Name) = UPPER(\''.$sequence_name.'\');
SELECT :NEW.'.$name.' INTO last_InsertID FROM DUAL;
WHILE (last_InsertID > last_Sequence) LOOP
SELECT '.$sequence_name.'.NEXTVAL INTO last_Sequence FROM DUAL;
END LOOP;
END IF;
END;
';
return $db->exec($trigger_sql);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_oci8::alterTable (   $name,
  $changes,
  $check 
)

alter an existing table

Parameters
string$namename of the table that is intended to be changed.
array$changesassociative array that contains the details of each type of change that is intended to be performed. The types of changes that are currently supported are defined as follows:

name

New name for the table.

add

Associative array with the names of fields to be added as
 indexes of the array. The value of each entry of the array
 should be set to another associative array with the properties
 of the fields to be added. The properties of the fields should
 be the same as defined by the MDB2 parser.

remove

Associative array with the names of fields to be removed as indexes
 of the array. Currently the values assigned to each entry are ignored.
 An empty array should be used for future compatibility.

rename

Associative array with the names of fields to be renamed as indexes
 of the array. The value of each entry of the array should be set to
 another associative array with the entry named name with the new
 field name and the entry named Declaration that is expected to contain
 the portion of the field declaration already in DBMS specific SQL code
 as it is used in the CREATE TABLE statement.

change

Associative array with the names of the fields to be changed as indexes
 of the array. Keep in mind that if it is intended to change either the
 name of a field and any other properties, the change array entries
 should have the new names of the fields as array indexes.

The value of each entry of the array should be set to another associative
 array with the properties of the fields to that are meant to be changed as
 array entries. These entries should be assigned to the new values of the
 respective properties. The properties of the fields should be the same
 as defined by the MDB2 parser.

Example array( 'name' => 'userlist', 'add' => array( 'quota' => array( 'type' => 'integer', 'unsigned' => 1 ) ), 'remove' => array( 'file_limit' => array(), 'time_limit' => array() ), 'change' => array( 'name' => array( 'length' => '20', 'definition' => array( 'type' => 'text', 'length' => 20, ), ) ), 'rename' => array( 'sex' => array( 'name' => 'gender', 'definition' => array( 'type' => 'text', 'length' => 1, 'default' => 'M', ), ) ) )

Parameters
boolean$checkindicates whether the function should just check if the DBMS driver can perform the requested table alterations if the value is true or actually perform them otherwise. public
Returns
mixed MDB2_OK on success, a MDB2 error on failure

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 453 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
foreach ($changes as $change_name => $change) {
switch ($change_name) {
case 'add':
case 'remove':
case 'change':
case 'name':
case 'rename':
break;
default:
return $db->raiseError(MDB2_ERROR_CANNOT_ALTER, null, null,
'change type "'.$change_name.'" not yet supported', __FUNCTION__);
}
}
if ($check) {
return MDB2_OK;
}
$name = $db->quoteIdentifier($name, true);
if (!empty($changes['add']) && is_array($changes['add'])) {
$fields = array();
foreach ($changes['add'] as $field_name => $field) {
$fields[] = $db->getDeclaration($field['type'], $field_name, $field);
}
$result = $db->exec("ALTER TABLE $name ADD (". implode(', ', $fields).')');
if (PEAR::isError($result)) {
return $result;
}
}
if (!empty($changes['change']) && is_array($changes['change'])) {
$fields = array();
foreach ($changes['change'] as $field_name => $field) {
$fields[] = $field_name. ' ' . $db->getDeclaration($field['definition']['type'], '', $field['definition']);
}
$result = $db->exec("ALTER TABLE $name MODIFY (". implode(', ', $fields).')');
if (PEAR::isError($result)) {
return $result;
}
}
if (!empty($changes['rename']) && is_array($changes['rename'])) {
foreach ($changes['rename'] as $field_name => $field) {
$field_name = $db->quoteIdentifier($field_name, true);
//$query = "ALTER TABLE $name RENAME COLUMN $field_name TO ".$db->quoteIdentifier($field['name']);
// Disabled case sensitive renaming smeyer
$query = "ALTER TABLE $name RENAME COLUMN $field_name TO ".$field['name'];
$result = $db->exec($query);
if (PEAR::isError($result)) {
return $result;
}
}
}
if (!empty($changes['remove']) && is_array($changes['remove'])) {
$fields = array();
foreach ($changes['remove'] as $field_name => $field) {
$fields[] = $db->quoteIdentifier($field_name, true);
}
$result = $db->exec("ALTER TABLE $name DROP COLUMN ". implode(', ', $fields));
if (PEAR::isError($result)) {
return $result;
}
}
if (!empty($changes['name'])) {
$change_name = $db->quoteIdentifier($changes['name'], true);
$result = $db->exec("ALTER TABLE $name RENAME TO ".$change_name);
if (PEAR::isError($result)) {
return $result;
}
}
return MDB2_OK;
}
MDB2_Driver_Manager_oci8::createDatabase (   $name)

create a new database

Parameters
object$dbdatabase object that is extended by this class
string$namename of the database that should be created
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 68 of file oci8.php.

References $name, $query, MDB2_Module_Common\getDBInstance(), PEAR\isError(), MDB2_ERROR_UNSUPPORTED, and MDB2_OK.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
if (!$db->options['emulate_database']) {
return $db->raiseError(MDB2_ERROR_UNSUPPORTED, null, null,
'database creation is only supported if the "emulate_database" option is enabled', __FUNCTION__);
}
$username = $db->options['database_name_prefix'].$name;
$password = $db->dsn['password'] ? $db->dsn['password'] : $name;
$tablespace = $db->options['default_tablespace']
? ' DEFAULT TABLESPACE '.$db->options['default_tablespace'] : '';
$query = 'CREATE USER '.$username.' IDENTIFIED BY '.$password.$tablespace;
$result = $db->standaloneQuery($query, null, true);
if (PEAR::isError($result)) {
return $result;
}
$query = 'GRANT CREATE SESSION, CREATE TABLE, UNLIMITED TABLESPACE, CREATE SEQUENCE, CREATE TRIGGER TO '.$username;
$result = $db->standaloneQuery($query, null, true);
if (PEAR::isError($result)) {
$query = 'DROP USER '.$username.' CASCADE';
$result2 = $db->standaloneQuery($query, null, true);
if (PEAR::isError($result2)) {
return $db->raiseError($result2, null, null,
'could not setup the database user', __FUNCTION__);
}
return $result;
}
return MDB2_OK;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_oci8::createSequence (   $seq_name,
  $start = 1 
)

create sequence

Parameters
object$dbdatabase object that is extended by this class
string$seq_namename of the sequence to be created
string$startstart value of the sequence; default is 1
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 824 of file oci8.php.

Referenced by _makeAutoincrement().

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$sequence_name = $db->quoteIdentifier($db->getSequenceName($seq_name), true);
$query = "CREATE SEQUENCE $sequence_name START WITH $start INCREMENT BY 1 NOCACHE";
$query.= ($start < 1 ? " MINVALUE $start" : '');
return $db->exec($query);
}

+ Here is the caller graph for this function:

MDB2_Driver_Manager_oci8::createTable (   $name,
  $fields,
  $options = array() 
)

create a new table

Parameters
string$nameName of the database that should be created
array$fieldsAssociative array that contains the definition of each field of the new table The indexes of the array entries are the names of the fields of the table an the array entry values are associative arrays like those that are meant to be passed with the field definitions to get[Type]Declaration() functions.

Example array(

'id' => array(
    'type' => 'integer',
    'unsigned' => 1
    'notnull' => 1
    'default' => 0
),
'name' => array(
    'type' => 'text',
    'length' => 12
),
'password' => array(
    'type' => 'text',
    'length' => 12
)

);

Parameters
array$optionsAn associative array of table options: array( 'comment' => 'Foo', 'temporary' => true|false, );
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 316 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$db->beginNestedTransaction();
$result = parent::createTable($name, $fields, $options);
if (!PEAR::isError($result)) {
foreach ($fields as $field_name => $field) {
if (!empty($field['autoincrement'])) {
$result = $this->_makeAutoincrement($field_name, $name);
}
}
}
$db->completeNestedTransaction();
return $result;
}
MDB2_Driver_Manager_oci8::dropDatabase (   $name)

drop an existing database

Parameters
object$dbdatabase object that is extended by this class
string$namename of the database that should be dropped
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 115 of file oci8.php.

References MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_ERROR_UNSUPPORTED.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
if (!$db->options['emulate_database']) {
return $db->raiseError(MDB2_ERROR_UNSUPPORTED, null, null,
'database dropping is only supported if the "emulate_database" option is enabled', __FUNCTION__);
}
$username = $db->options['database_name_prefix'].$name;
return $db->standaloneQuery('DROP USER '.$username.' CASCADE', null, true);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_oci8::dropSequence (   $seq_name)

drop existing sequence

Parameters
object$dbdatabase object that is extended by this class
string$seq_namename of the sequence to be dropped
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 848 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$sequence_name = $db->quoteIdentifier($db->getSequenceName($seq_name), true);
return $db->exec("DROP SEQUENCE $sequence_name");
}
MDB2_Driver_Manager_oci8::dropTable (   $name)

drop an existing table

Parameters
string$namename of the table that should be dropped
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 345 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$db->beginNestedTransaction();
$result = $this->_dropAutoincrement($name);
if (!PEAR::isError($result)) {
}
$db->completeNestedTransaction();
return $result;
}
MDB2_Driver_Manager_oci8::listDatabases ( )

list all databases

Returns
mixed array of database names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 546 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
if (!$db->options['emulate_database']) {
return $db->raiseError(MDB2_ERROR_UNSUPPORTED, null, null,
'database listing is only supported if the "emulate_database" option is enabled', __FUNCTION__);
}
if ($db->options['database_name_prefix']) {
$query = 'SELECT SUBSTR(username, ';
$query.= (strlen($db->options['database_name_prefix'])+1);
$query.= ") FROM sys.dba_users WHERE username LIKE '";
$query.= $db->options['database_name_prefix']."%'";
} else {
$query = 'SELECT username FROM sys.dba_users';
}
$result2 = $db->standaloneQuery($query, array('text'), false);
if (PEAR::isError($result2)) {
return $result2;
}
$result = $result2->fetchCol();
if (PEAR::isError($result)) {
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE
&& $db->options['field_case'] == CASE_LOWER
) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
$result2->free();
return $result;
}
MDB2_Driver_Manager_oci8::listFunctions ( )

list all functions in the current database

Returns
mixed array of function names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 648 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = "SELECT name FROM sys.user_source WHERE line = 1 AND type = 'FUNCTION'";
$result = $db->queryCol($query);
if (PEAR::isError($result)) {
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE
&& $db->options['field_case'] == CASE_LOWER
) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}
MDB2_Driver_Manager_oci8::listSequences ( )

list all sequences in the current database

Returns
mixed array of sequence names on success, a MDB2 error on failure public

Definition at line 868 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = "SELECT sequence_name FROM sys.user_sequences";
$table_names = $db->queryCol($query);
if (PEAR::isError($table_names)) {
return $table_names;
}
$result = array();
foreach ($table_names as $table_name) {
$result[] = $this->_fixSequenceName($table_name);
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}
MDB2_Driver_Manager_oci8::listTableConstraints (   $table)

list all constraints in a table

Parameters
string$tablename of table that should be used in method
Returns
mixed array of constraint names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 781 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = $db->quote($table, 'text');
$query = 'SELECT constraint_name name FROM user_constraints';
$query.= ' WHERE table_name='.$table.' OR table_name='.strtoupper($table);
$constraints = $db->queryCol($query);
if (PEAR::isError($constraints)) {
return $constraints;
}
$result = array();
foreach ($constraints as $constraint) {
$constraint = $this->_fixIndexName($constraint);
if (!empty($constraint)) {
$result[$constraint] = true;
}
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE
&& $db->options['field_case'] == CASE_LOWER
) {
$result = array_change_key_case($result, $db->options['field_case']);
}
return array_keys($result);
}
MDB2_Driver_Manager_oci8::listTableFields (   $table)

list all fields in a table in the current database

Parameters
string$tablename of table that should be used in method
Returns
mixed array of field names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 707 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = $db->quote($table, 'text');
$query = 'SELECT column_name FROM user_tab_columns';
$query.= ' WHERE table_name='.$table.' OR table_name='.strtoupper($table).' ORDER BY column_id';
$result = $db->queryCol($query);
if (PEAR::isError($result)) {
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE
&& $db->options['field_case'] == CASE_LOWER
) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}
MDB2_Driver_Manager_oci8::listTableIndexes (   $table)

list all indexes in a table

Parameters
string$tablename of table that should be used in method
Returns
mixed array of index names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 739 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = $db->quote($table, 'text');
$query = 'SELECT index_name name FROM user_indexes';
$query.= ' WHERE (table_name='.$table.' OR table_name='.strtoupper($table);
$query.= ') AND generated=' .$db->quote('N', 'text');
$indexes = $db->queryCol($query, 'text');
if (PEAR::isError($indexes)) {
return $indexes;
}
$result = array();
foreach ($indexes as $index) {
$index = $this->_fixIndexName($index);
if (!empty($index)) {
$result[$index] = true;
}
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE
&& $db->options['field_case'] == CASE_LOWER
) {
$result = array_change_key_case($result, $db->options['field_case']);
}
return array_keys($result);
}
MDB2_Driver_Manager_oci8::listTables ( )

list all tables in the current database

Returns
mixed array of table names on success, a MDB2 error on failure public

Definition at line 677 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = 'SELECT table_name FROM sys.user_tables';
$result = $db->queryCol($query);
if (PEAR::isError($result)) {
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE
&& $db->options['field_case'] == CASE_LOWER
) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}
MDB2_Driver_Manager_oci8::listUsers ( )

list all users

Returns
mixed array of user names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 592 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
if ($db->options['emulate_database'] && $db->options['database_name_prefix']) {
$query = 'SELECT SUBSTR(username, ';
$query.= (strlen($db->options['database_name_prefix'])+1);
$query.= ") FROM sys.dba_users WHERE username NOT LIKE '";
$query.= $db->options['database_name_prefix']."%'";
} else {
$query = 'SELECT username FROM sys.dba_users';
}
return $db->queryCol($query);
}
MDB2_Driver_Manager_oci8::listViews ( )

list all views in the current database

Returns
mixed array of view names on success, a MDB2 error on failure public

Definition at line 619 of file oci8.php.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = 'SELECT view_name FROM sys.user_views';
$result = $db->queryCol($query);
if (PEAR::isError($result)) {
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE
&& $db->options['field_case'] == CASE_LOWER
) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}

The documentation for this class was generated from the following file: