Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Вниз

Помогите новичку с SQL запросом в Oracle   Найти похожие ветки 

 
Mefodiy   (2005-07-07 17:46) [0]

Имеется DBF таблица (400-500 записей) с четырьмя полями. В первом поле - коды товаров, а три остальных поля пустые (наименование, остатки и цена). Нужно из базы данных в Oracle заполнить пустые поля DBF таблицы. В Oracle эти поля находятся в разных таблицах.
  Можно ли это сделать одним запросом и как сделать, чтобы запрос выполнялся быстро?
  Спасибо


 
Алхимик ©   (2005-07-07 17:48) [1]

Структуру баз в студию.


 
fens   (2005-07-07 17:59) [2]

Мне кажется это возможно с помоц
щью вот такой конструкции, попробуй
INSERT INTO tabl1 SELECT field1..n FROM oratable1...n WHERE условия выборки


 
Val ©   (2005-07-07 18:52) [3]

прикольно - еще не писали запроса, а уже подозреваем, что он будет выполняться медленно :)
по вопросу - проблема в написании запроса или в передаче данных в дбф?


 
evvcom ©   (2005-07-08 00:29) [4]

Одним запросом из Oracle в DBF(dBase)? По-моему это из области фантастики. Сам Oracle-сервер умеет работать только со своими базами. Все остальное, что там понаписано в доп.пакетах и т.п., написано на иных языках. Они могут получать набор данных от сервера и уже известным им, а не серверу, способом перегонять их в другие форматы. То же самое ты можешь сделать, написав клиента на Delphi.


 
Mefodiy   (2005-07-08 09:23) [5]

>> evvcom ©  

Как получить набор данных от сервера по записям DBF файла ?


 
evvcom ©   (2005-07-08 09:39) [6]

Можно, например, на клиенте сформировать строку с нужными ключами в виде: "1,3,6,15,28", передать ее в качестве параметра в процедуру на Oracle, а там либо формируется динамический запрос типа
"... where id in " || pMyParam
и далее выполняется, либо статический запрос вида
where IN_STR(pMyParam, "," || TO_CHAR(id) || ",") > 0
в этом случае pMyParam надо формировать в виде ",1,3,6,15,28,"


 
Mefodiy   (2005-07-08 10:07) [7]

>> evvcom ©

Учтите, что это будет строка с ~500 ключами, каждый из которых длиной 8 символов. Видимо нужно будет использовать тип WideString. Реально ли ?


 
evvcom ©   (2005-07-08 10:36) [8]


> строка с ~500 ключами, каждый из которых длиной 8 символов

это около 4 кБ

> Реально ли

Если это не частая операция, то ничего страшного. Если же обычная рабочая, то, возможно, что-то вообще в идее не то. Надо экспериментировать. Может обрабатывать не по 500, а записей по 100. Нужно пробовать.


 
Danilka ©   (2005-07-08 10:55) [9]

как вариант - в Орокле заполнить временную таблицу у которой 1 параметр - ID, значениями из ДБФ-ки, после чего выполнить запрос.


 
roottim ©   (2005-07-08 11:01) [10]

или сделать dblink к dbf через odbc и обойтись без временной а dbf всегда ложить на определенное место определенной машины с определенным достум... опреденно :))))


 
Mefodiy   (2005-07-12 07:51) [11]

Вариант evvcom © сработал нормально.
Всем спасибо.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.03 c
14-1122890968
msguns
2005-08-01 14:09
2005.08.21
Горе-то какое..


1-1122632875
vers
2005-07-29 14:27
2005.08.21
Прорисовка формы в DLL


10-1099939982
Mr
2004-11-08 21:53
2005.08.21
Сервер RPC недоступен


4-1120045400
SPeller
2005-06-29 15:43
2005.08.21
Заставить IE перечитать настройки


4-1120376910
SpyBoy
2005-07-03 11:48
2005.08.21
Менеджер процессов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский