diff --git a/uppsrc/Oracle/OraCommon.cpp b/uppsrc/Oracle/OraCommon.cpp index 600259dbd..e2ac2179f 100644 --- a/uppsrc/Oracle/OraCommon.cpp +++ b/uppsrc/Oracle/OraCommon.cpp @@ -270,7 +270,12 @@ Vector OracleSchemaUsers(Sql& cursor) Vector OracleSchemaTables(Sql& cursor, String database) { Vector out; - if(Select(SqlId("TABLE_NAME")).From(SqlId("ALL_TABLES")).Where(SqlId("OWNER") == database).Execute(cursor)) + SqlSelect sel; + if(!IsNull(database)) + sel = Select(SqlId("TABLE_NAME")).From(SqlId("ALL_TABLES")).Where(SqlId("OWNER") == database); + else + sel = Select(SqlId("TABLE_NAME")).From(SqlId("USER_TABLES")); + if(sel.Execute(cursor)) out = FetchList(cursor); return out; } diff --git a/uppsrc/Sql/Sql.cpp b/uppsrc/Sql/Sql.cpp index 6b9e2e9d8..1405c80b4 100644 --- a/uppsrc/Sql/Sql.cpp +++ b/uppsrc/Sql/Sql.cpp @@ -645,7 +645,11 @@ Vector SqlSession::EnumColumns(String database, String table) Vector info; SqlBool none; none.SetFalse(); - if(cursor.Execute(Select(SqlAll()).From(SqlSet(SqlCol(database + '.' + table))).Where(none))) { + String full_name = database; + if(!IsNull(database)) + full_name << '.'; + full_name << table; + if(cursor.Execute(Select(SqlAll()).From(SqlSet(SqlCol(full_name))).Where(none))) { info.SetCount(cursor.GetColumns()); for(int i = 0; i < info.GetCount(); i++) info[i] = cursor.GetColumnInfo(i); diff --git a/uppsrc/TCore/SqlConsole.cfg b/uppsrc/TCore/SqlConsole.cfg new file mode 100644 index 000000000..181f1a0fa Binary files /dev/null and b/uppsrc/TCore/SqlConsole.cfg differ