Главная страница
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.035 c
8-1113485801
vayrus
2005-04-14 17:36
2005.08.21
Windows.Beep


1-1122626826
nippo
2005-07-29 12:47
2005.08.21
Наследование интерфейсов


1-1123058496
Aleksandr.
2005-08-03 12:41
2005.08.21
Как перевести соотношение точек объекта к точкам принтера?


1-1122844342
ronyn
2005-08-01 01:12
2005.08.21
Срок работы DEMO


4-1119700531
Nik_vr
2005-06-25 15:55
2005.08.21
Окно в окне (чужом)