Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.21;
Скачать: CL | DM;

Вниз

Помогите новичку с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.061 c
3-1121057190
Andrey V.
2005-07-11 08:46
2005.08.21
про UNION ...


8-1113149510
parovoZZ
2005-04-10 20:11
2005.08.21
Что выбрать?


1-1123060934
TDionis
2005-08-03 13:22
2005.08.21
Несовместимость String и Char


11-1105547544
Seeker
2005-01-12 19:32
2005.08.21
KOLScktComp


1-1122821659
TechnoDreamer
2005-07-31 18:54
2005.08.21
TRichViev и вставка форматированного текста