Hallo erstmal,
ich hoffe ich bekomme hier in dem Forum die hilfe die ich brauche *gg*
ich versuche gerade per PHP Script meine Oracle Datenbank auszulesen und die Ergebnisse in einem Array zu speichern.
Einmal sollen den Daten der einzelen Tabellen angezeigt werden: Datenlänge, Datentyp, Defaultwert und ob es ein Nulltable sein darf.
Das Funktioniert auch.
Im zweiten Schritt würde ich mir gerne die Indizes auslesen und auch in einem Array speichern.
Hier mal der Quellcode:
Wenn ich das ganze nun ausführe, bekomme ich folgende Fehlermeldung:
MDB2 Error: no such table
[SELECT LOWER(table_name) as table_name, LOWER(column_name) as column_name, LOWER(index_name) as index_name, data_index FROM dba_indexes WHERE table_name='CATEGORIES']
_execute: [Error message: could not execute statement] [Last executed query: SELECT LOWER(table_name) as table_name, LOWER(column_name) as column_name, LOWER(index_name) as index_name, data_index FROM dba_indexes WHERE table_name='CATEGORIES'] [Native code: 942] [Native message: ORA-00942: table or view does not exist]
Weiß vll einer von euch wie ich die Indizes auslesen kann?
ich hoffe ich bekomme hier in dem Forum die hilfe die ich brauche *gg*
ich versuche gerade per PHP Script meine Oracle Datenbank auszulesen und die Ergebnisse in einem Array zu speichern.
Einmal sollen den Daten der einzelen Tabellen angezeigt werden: Datenlänge, Datentyp, Defaultwert und ob es ein Nulltable sein darf.
Das Funktioniert auch.
Im zweiten Schritt würde ich mir gerne die Indizes auslesen und auch in einem Array speichern.
Hier mal der Quellcode:
PHP Code:
$db->queryStmt('SELECT table_name FROM USER_TABLES');
$table_array = array();
$index_array = array();
while ($row = $db->fetchRow())
{
if(strpos($row['table_name'],'$'))
continue;
$db2->queryStmt('SELECT ' .
'LOWER(table_name) as table_name, ' .
'LOWER(column_name) as column_name, ' .
'LOWER(data_type) as data_type, ' .
'data_length, ' .
'data_default, ' .
'nullable ' .
'FROM user_tab_columns ' .
'WHERE table_name=\'' . $row['table_name'] . '\'');
while ($col = $db2->fetchRow())
{
$table_array[$col['table_name']][$col['column_name']]['data_type'] = $col['data_type'];
$table_array[$col['table_name']][$col['column_name']]['data_length'] = $col['data_length'];
$table_array[$col['table_name']][$col['column_name']]['data_default'] = $col['data_default'];
$table_array[$col['table_name']][$col['column_name']]['nullable'] = $col['nullable'];
}
$db3->queryStmt('SELECT ' .
'LOWER(table_name) as table_name, ' .
'LOWER(column_name) as column_name, ' .
'LOWER(index_name) as index_name, ' .
'data_index ' .
'FROM dba_indexes ' .
'WHERE table_name=\'' . $row['table_name'] . '\'');
while($index = $db3->fetchRow())
{
$index_array[$index['table_name']][$index['column_name']]['index_name'] = $index['index_name'];
$index_array[$index['table_name']][$index['column_name']]['data_index'] = $index['data_index'];
}
}
echo '<pre>';
print_r($table_array);
print_r($index_array)
MDB2 Error: no such table
[SELECT LOWER(table_name) as table_name, LOWER(column_name) as column_name, LOWER(index_name) as index_name, data_index FROM dba_indexes WHERE table_name='CATEGORIES']
_execute: [Error message: could not execute statement] [Last executed query: SELECT LOWER(table_name) as table_name, LOWER(column_name) as column_name, LOWER(index_name) as index_name, data_index FROM dba_indexes WHERE table_name='CATEGORIES'] [Native code: 942] [Native message: ORA-00942: table or view does not exist]
Weiß vll einer von euch wie ich die Indizes auslesen kann?
Comment