Главная страница
    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.47 MB
Время: 0.033 c
14-1122496407
DiamondShark
2005-07-28 00:33
2005.08.21
Дятлы.


14-1122665035
fen
2005-07-29 23:23
2005.08.21
ехе


1-1122865029
Lexa
2005-08-01 06:57
2005.08.21
Ошибка при работе со строковыми переменными?


3-1121137643
akhmadey
2005-07-12 07:07
2005.08.21
Проблема с индексацией dbf-таблицы


1-1122616813
Viktop
2005-07-29 10:00
2005.08.21
Вопрос по DevExpress





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский