Как объединить данные из разных столбцов из разных баз данных разных поставщиков в одну таблицу? - PullRequest
3 голосов
/ 24 июня 2010

Скажите, у меня есть таблица с именем tbl1 в mysql: -

bookid int
name varchar(20)
price int
categoryid int

И тогда у меня есть вторая таблица, tbl2 в Oracle: -

pubid int
name varchar(20)
addr varchar(50)

Я хочу объединить эти два в MS Sql Server 2008 с именем tbl3, структура которого должна быть: -

bookid int
name varchar(20)
price int
pubid int
name varchar(20)

Обратите внимание, что я знаю, что таблицы не имеют смысла, но мне просто нужно понятие, возможно ли это или нет. И если да, то как? Какие запросы я должен написать? Я не хочу использовать Sql Server Integration Services.

Заранее спасибо:)

Ответы [ 2 ]

1 голос
/ 24 июня 2010

Вам понадобится что-то, что может связываться с каждой из баз данных. Если SQL Server предназначен, и вы не хотите использовать DTS / SSIS, то вы можете использовать связанные серверы. Единственный вопрос заключается в том, как данные из Oracle связаны с данными из MySQL, поскольку нет соответствующего столбца. В любом случае, если у вас есть связанный сервер с именем «ORACLESERVER» и другой с именем «MYSQLSEVER», вы можете сделать что-то вроде (при условии, что name был столбцом связывания):

Insert SqlServerDbName.SchemaName.TableName(....)
Select ...
From ORACLESERVER.DbName.SchemaName.tbl1 As T1
    Join MYSQLSERVER.DbName.SchemaName.tbl2 As T2
        On T2.name = T1.name

Другим решением будет использование OPENROWSET для достижения аналогичного результата.

0 голосов
/ 24 июня 2010

У них есть общий столбец, на котором вы можете запустить объединение. Например, совпадает ли categoryid в первой таблице с pubid во второй. Соответствует ли имя из таблицы1 имени в таблице2. Если так называется ключ, никакая другая книга с таким же именем не будет иметь друг друга. Если это так, запустите объединение таблиц, используя имя в качестве общего ключа.

Если общего ключа нет, вы можете сделать select * from table1, table2, ..., tablen. Это будет работать в действительно большой таблице. Если вы объедините две таблицы по 12 строк в каждой, то итоговая таблица будет иметь в общей сложности 12*12 = 144 строк.

...