Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование из одной базы дынных в другую, Копирование из одной базы дынных в другу 
:(
    Опции темы
eon
  Дата 29.11.2010, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 31.8.2010

Репутация: нет
Всего: нет



Здравствуйте!
Есть БД, в которой хранятся некие данные, необходимые для работы моей программы.
Эти данные я должен хранить в собственной БД. SQLServer08
Вроде как решил я обновлять данные в своей БД раз в сутки.
Как правильно организовать копирование данных из таблицы одной БД в таблицу моей БД??
Можно прям каждые сутки брать из первой БД данные и помещать вместо существующих данных в мою БД.
Как правильно сделать это через winforms.
Например в datagridview я могу загрузить данные из первой БД, и как же их поместить в мою БД вместо предыдущих данных??
PM MAIL   Вверх
Akina
Дата 29.11.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



А вот зачем тебе гонять данные через свою станцию? заняться нечем?
Напиши хранимую процедуру, которая будет перегонять данные. Типа (syntax-fake, idea only)
Код

create procedure RefreshData
as
delete * 
from dbo.dbase1.datatable1;
insert into dbo.dbase1.datatable1
select *
from dbo.dbase2.datatable2;

и запускай когда нужно.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
eon
Дата 29.11.2010, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 31.8.2010

Репутация: нет
Всего: нет



Ну всё равно придется писать приложение на VS??
Или можно будет как-то задать, чтобы эта хранимка запускалась в субд каждый день в 3:00 например??

PM MAIL   Вверх
Akina
Дата 29.11.2010, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Конечно можно. Можно создать на сервере отдельный Job, а можно включить его в существующий пакет джобов или даже в maintainance plan (впрочем, я бы всё-таки сделал его автономным).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
eon
Дата 29.11.2010, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 31.8.2010

Репутация: нет
Всего: нет



### smile
Я ничего к сожалению не понимаю в джобах))))
PM MAIL   Вверх
Zioma
Дата 29.11.2010, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 22.8.2007

Репутация: 5
Всего: 5



Конечно можете, хоть раз в сутки, хоть каждые 5 минут.
Почитайте что-то по репликации в MSSQL (для общего развития ;) ), ну и конечно по экспорту/импорту данных.
PM MAIL   Вверх
eon
Дата 29.11.2010, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 31.8.2010

Репутация: нет
Всего: нет



Еще дело в том, что первичная БД - оракловая, а моя - скл сервер

пробую так:
Код

string connectionString1 = "DATA SOURCE=blabla;PERSIST SECURITY INFO=True;USER ID=user; PASSWORD=password";
            OracleConnection con1 = new OracleConnection(connectionString1);
            string connectionString2 = "Data Source=blabla;Initial Catalog=bla;User ID=user;Password=password";
            SqlConnection con2 = new SqlConnection(connectionString2);
            string commandString1 = "INSERT INTO subp.subp.dbo.DataFromSo SELECT * FROM SO_OAL.SO.AK_OAL_TIME_COUNT";
            SqlCommand cmd = new SqlCommand(commandString3);
            cmd.Connection = con2;
            con1.Open();
            con2.Open();
            cmd.ExecuteNonQuery();
            con1.Close();
            con2.Close();


Короче путанница небольшая. Ошибка: Недопустимое имя объекта "SO_OAL.SO.AK_OAL_TIME_COUNT".
Помогите разобраться.
PM MAIL   Вверх
Akina
Дата 29.11.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(eon @  29.11.2010,  15:38 Найти цитируемый пост)
Я ничего к сожалению не понимаю в джобах)))) 

В виндовом шедулере разобраться сможешь? и тут разберёшься.

Цитата(eon @  29.11.2010,  15:57 Найти цитируемый пост)
 первичная БД - оракловая, а моя - скл сервер

И что?

Цитата(eon @  29.11.2010,  15:57 Найти цитируемый пост)
Ошибка: Недопустимое имя объекта 

Ну ещё бы. Откуда MS SQL знает, что где-то там есть Оракл?

eon, Вы (я извиняюсь) не пробовали читать маны? примеры там посмотреть... помогает...



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
eon
Дата 30.11.2010, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 31.8.2010

Репутация: нет
Всего: нет



Цитата(Akina @ 29.11.2010,  15:29)
eon, Вы (я извиняюсь) не пробовали читать маны? примеры там посмотреть... помогает...

Пока не пробовал, когда берешься что-то делать, охото же, чтобы всё и сразу smile
Сделаю через датагридвью.
PM MAIL   Вверх
eon
Дата 30.11.2010, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 31.8.2010

Репутация: нет
Всего: нет



Цитата(eon @ 29.11.2010,  14:57)
Еще дело в том, что первичная БД - оракловая, а моя - скл сервер

пробую так:
Код

string connectionString1 = "DATA SOURCE=blabla;PERSIST SECURITY INFO=True;USER ID=user; PASSWORD=password";
            OracleConnection con1 = new OracleConnection(connectionString1);
            string connectionString2 = "Data Source=blabla;Initial Catalog=bla;User ID=user;Password=password";
            SqlConnection con2 = new SqlConnection(connectionString2);
            string commandString1 = "INSERT INTO subp.subp.dbo.DataFromSo SELECT * FROM SO_OAL.SO.AK_OAL_TIME_COUNT";
            SqlCommand cmd = new SqlCommand(commandString3);
            cmd.Connection = con2;
            con1.Open();
            con2.Open();
            cmd.ExecuteNonQuery();
            con1.Close();
            con2.Close();


Короче путанница небольшая. Ошибка: Недопустимое имя объекта "SO_OAL.SO.AK_OAL_TIME_COUNT".
Помогите разобраться.

Кто-нибудь подскажет, как правильно написать именно этим способом?
PM MAIL   Вверх
Akina
Дата 30.11.2010, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



http://msdn.microsoft.com/en-us/library/ms...v=SQL.100).aspx
http://msdn.microsoft.com/en-us/library/dd...v=SQL.100).aspx
http://msdn.microsoft.com/en-us/library/ms...v=SQL.100).aspx
Особенно внимательно читать про INSERT ... SELECT * FROM OPENROWSET(BULK...)

Цитата(eon @  30.11.2010,  07:12 Найти цитируемый пост)
когда берешься что-то делать, охото же, чтобы всё и сразу

Этим и отличается дилетант от профессионала. Отвыкай.

Добавлено через 48 секунд
Цитата(eon @  30.11.2010,  08:08 Найти цитируемый пост)
как правильно написать именно этим способом? 

Никак. По-моему, это уже можно было понять.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 30.11.2010, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(Akina @  30.11.2010,  08:52 Найти цитируемый пост)
Никак

MS ведь поддерживает гетерогенные связи!

Однако можно выполнить тоже самое, подключившись к ораклу. Настроив на его стороне HS, подключив к нему MS.
Правда что то мне подсказывает, что настроить окружение MS будет несколько попроще.

Это сообщение отредактировал(а) Zloxa - 30.11.2010, 10:21


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 30.11.2010, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Zloxa @  30.11.2010,  11:20 Найти цитируемый пост)
MS ведь поддерживает гетерогенные связи!

Да. Постоянные. Я же даю ссылки на то же самое, только связь сеансовая.
Цитата(Zloxa @  30.11.2010,  11:20 Найти цитируемый пост)
можно выполнить тоже самое, подключившись к ораклу

Не суть. Убеждён, что у Оракла тоже найдётся синтаксис сеансового подключения. Тем более что есть постоянка.

Но ты посмотри, что ОН желает. Не инструктируя сервер БД, заставить его обмениваться данными с другим сервером БД, о котором известно только клиентской части. Это - нереально.

Добавлено через 1 минуту и 48 секунд
ТО есть реально, конечно, можно всосать в себя данные из одного сервера, в локальный рекордсет, а потом их вывалить в другой сервер. Но это как раз то, о чём я говорю - гнать данные через клиента, когда надобности в том вовсе никакой.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 30.11.2010, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(Akina @  30.11.2010,  11:03 Найти цитируемый пост)
Убеждён, что у Оракла тоже найдётся синтаксис сеансового подключения

Вот это врядли. Ничего подобного не припомню smile



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 30.11.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Zloxa @  30.11.2010,  12:21 Найти цитируемый пост)
Вот это врядли. Ничего подобного не припомню 

Не силён... но так, по верхам пробежав, полагаю, что create database link в сеансе как раз позволяет сотворить нечто аналогичное - подключиться к удалённой БД, утянуть оттуда нужные данные и отключиться.
Не, запросто могу и ошибаться... но уж больно похоже.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 30.11.2010, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(Akina @  30.11.2010,  16:00 Найти цитируемый пост)
что create database link в сеансе как раз позволяет сотворить нечто аналогичное - подключиться к удалённой БД, утянуть оттуда нужные данные и отключиться.

Подключиться/отключиться - то да.
Но только вот датабазлинк, после завершения сессии таки останется, да и прежде чем его создавать, может оказаться необходимо во всяких админских конфигурационных файликах всякие нужности прописать на стороне сервера. Тем более если dblink на non oracle смотреть будет.
Так что сеансовым такой способ назвать сложно.
Ну или я не правильно понял смысл, вкладываемый в слово "сеансовый" smile


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 30.11.2010, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Zloxa @  30.11.2010,  18:44 Найти цитируемый пост)
датабазлинк, после завершения сессии таки останется

Гм... а среди вариантов там, как мне показалось, был и такой, который, если верить описанию, как раз жил только вместе с сессией... 

Цитата(Zloxa @  30.11.2010,  18:44 Найти цитируемый пост)
прежде чем его создавать, может оказаться необходимо во всяких админских конфигурационных файликах всякие нужности прописать на стороне сервера.

Ну так и у MS SQL тоже. Другой вопрос, что вся обыденно-необходимая шелуха ставится сразу - вот только не думаю я, что ODBC к Ораклу входит в этот перечень... а мож и входит - искать лениво.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 30.11.2010, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(Akina @  30.11.2010,  17:48 Найти цитируемый пост)
Гм... а среди вариантов там, как мне показалось, был и такой, который, если верить описанию, как раз жил только вместе с сессией..

Гм....
Попытаю своего DBA, покурю доки на этот предмет.... 



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1088 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.