Bill Karwin (bi**@karwin.com) wrote:
: Malcolm Dew-Jones wrote:
: > Absolutely Oracle does this.
: >
: > A query can pull in tables from any (Oracle) database with the necessary
: > connections, and potentially other database via a supported gateway.
: >
: > This is not new. Oracle has done this for years.
: Fascinating, thanks for the info. I admit I have nearly zero experience
: with any version of Oracle. I was assuming that since it is potentially
: so costly to perform a cross-server join as datasets grow larger, and
: Oracle is suited to large-scale databases, that there would be
: limitations here. Also, I tried to use Google to find evidence of this
: feature in Oracle, and could not find it within a few minutes.
Unfortunately, definitive oracle info never seems to rise to the top of
any google searches.
However, google "Oracle select syntax" did bring up the following a little
ways down. It's not from oracle, but appears to be cut/paste from the
oracle docs.
http://www.cs.rpi.edu/~sibel/dbs/FAL.../sql_dmcmd.htm
SYNTAX:
SELECT [DISTINCT | ALL] { *
| { [schema.]{table | view | snapshot}.*
| expr } [ [AS] c_alias ]
[, { [schema.]{table | view | snapshot}.*
| expr } [ [AS] c_alias ] ] ... }
FROM [schema.]{table | view | subquery | snapshot}[@dblink]
[t_alias]
[, [schema.]... ] ...
[WHERE condition ]
[ [START WITH condition] CONNECT BY condition]
[GROUP BY expr [, expr] ... [HAVING condition] ]
[{UNION | UNION ALL | INTERSECT | MINUS} SELECT command ]
[ORDER BY {expr|position} [ASC | DESC]
[, {expr|position} [ASC | DESC]] ...]
[FOR UPDATE [OF [[schema.]{table | view}.]column
[, [[schema.]{table | view}.]column] ...] [NOWAIT] ]
Note the FROM clause and the "table@dblink"
The @dblink refers to a "database link" i.e. a connection to a remote
database server, and the syntax expression is showing that you can use it
as part of a select including multiple tables (i.e. a join).
as for
: Oracle is suited to large-scale databases
I would say that Oracle is suited to enterprise databases, that is to say,
databases that a business can depend on. Size has little to do with that.
And the efficiency is irrelevent in the sense that if you need the
functionality and it doesn't work then you have 0% efficiency. If you
need it a lot then there are ways to make things more efficient _if_ that
turns out to be a problem, such as local snapshots of remote data. Of
course Oracle costs more than some of the alternatives, so building your
own code for one task might well be cheaper, and is commonly more fun.
--
This space not for rent.