Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» СУБД Oracle (Оракл - для поиска:)).

Автор: MedvedevDM
Дата сообщения: 12.11.2010 21:24
Насчет ошибки ora-600
причины то этой ошибки могут быть разные,
смотри h**p://ora-0600.ora-code.com/
Автор: catchturbina
Дата сообщения: 07.12.2010 09:20
Как можно в Delphi работать с курсорами Oracle?
Автор: tanaseduard
Дата сообщения: 07.12.2010 09:21
catchturbina

С этого момента по подробней.
Что именно Вас интересует?
Автор: catchturbina
Дата сообщения: 07.12.2010 09:37
tanaseduard

Например пакетная функция возвращает курсор. Хочется с ним работать в обычном гриде.
Автор: tanaseduard
Дата сообщения: 07.12.2010 09:43
catchturbina

Все зависит какие вы используете компоненты.
Я юзаю AllAround.
Там это вот так делаеться.

Код: begin
-- Call the function
:result := pkg_app_main.fc_dataset_get_cursor();
end;
Автор: catchturbina
Дата сообщения: 07.12.2010 10:02
tanaseduard
Спасибо.
А где скачать такие компоненты можно?
Автор: tanaseduard
Дата сообщения: 07.12.2010 10:03
catchturbina

Я брал давненько на рутрекере.
Если что стучись в личку.
Автор: catchturbina
Дата сообщения: 07.12.2010 11:12
tanaseduard

Подскажите пожалуйста работа с pipilined и пакетными ф-ц там нормально реализована?
Автор: tanaseduard
Дата сообщения: 07.12.2010 11:15
catchturbina

Да.
Для пакетов там есть Package Builder. Очень удобная штука. Позволяет пакет оракли реализовать в виде класса. А потом соответственно дергать процедуры и функции с него как обычные.
Учтите что в нем понятие ораклевого Number это всегда будет Double.
Автор: catchturbina
Дата сообщения: 08.12.2010 10:00
tanaseduard


А есть возможность работать с SapePoint?
Автор: tanaseduard
Дата сообщения: 08.12.2010 11:43
catchturbina

Да.

Код:
os_Session.SavePoint(PointName:String);
os_Session.RollbackToSavepoint(PointName:String);
Автор: IpEr
Дата сообщения: 21.01.2011 08:41
Доброе время суток!

Возникла проблема:
В результате работы select1 выдается рез-тат 16 строк. Примерное время выполения 3-4с. Среда 10G.
В этом запросе выводятся X, Y , X*Y as Z.
Где X - столбец
Y - select0, возвращающий столбец

В конечном итоге должно получиться SUM(Z) и если добавить так:
select SUM(Z) from select1
то после 20 минутного раздумья выдается ошибка: ORA 01652 невозможно увеличить временный сегмент до 128...

Есть ли возможность сохранить select1 в какую-нибудь таблицу Temp1 из которой собственно и извлечь затем сумму интересующего столбца?

Спасибо.
Автор: jonikDk
Дата сообщения: 21.01.2011 11:48
можно но надо в начале эту временную таблицу создать, затем записать в нее данные и затем только выберешь ты свою сумму.
Написал бы лучше полностью свой select, а то спрашиваешь а исходныве данные не приводишь
Автор: IpEr
Дата сообщения: 21.01.2011 12:40
Собственно:

Код:
select v.acc_end_val,

v.acc_end_val* (select value
from (select date_price, value, code from table1.t_fi f, table1.t_fi_price p, table1.v_lic_acc_value v where f.id=p.link_fi and v.fi_code=f.code and date_price<'02.05.2010'
order by date_price desc) where rownum=1 and v.fi_code=code) as stoimost

from table1.v_lic_acc_value v,table1.t_fi f, table1.t_list_fi_type t
where
v.date_cal_from = to_date('01.05.2010' , 'dd.mm.yyyy')
and v.date_cal_to = to_date('01.05.2010' , 'dd.mm.yyyy')
and v.acc_end_val!='0'
and v.depo_acc_num='MS9403170488'
and v.section_type_name='Основной'
and v.fi_code=f.code
and f.link_fi_type=t.id
and t.id='100142574';

Рез-тат:
v.acc_end_val |STOIMOST
501 |601781.16
30422820 |49174533563.4
10200000 |0
Автор: svavka
Дата сообщения: 21.01.2011 23:52
1. попробуй поточней говорить ораклу что откуда, вот у тебя в подзапросе

Код:
select value
(select date_price, value, code
from table1.t_fi f, table1.t_fi_price p, table1.v_lic_acc_value v
where
f.id=p.link_fi and
v.fi_code=f.code and
date_price<'02.05.2010'
order by date_price desc)
where rownum=1 and v.fi_code=code
Автор: SIgor33
Дата сообщения: 23.01.2011 09:08
IpEr
Попробуй в качестве соединений inner join использовать
Автор: alexsob
Дата сообщения: 27.01.2011 06:34
IpEr
Непонятно, тебе нужно так что-ли:
select X,Y, SUM(X*Y) as Z
group by X,Y
так это какая-то несуразность. А если так
select SUM(X*Y) as Z
то суммируй себе на здоровье. Как вариант, ведь можно select sum(X*Y) from (select X, (select ..) as Y) и т.п.

Кстати, "order by date_price desc" внутри подзапроса выглядит, мягко говоря, неуместно. Кроме торможения это ничего не дает.
Автор: IpEr
Дата сообщения: 27.01.2011 09:00
svavka

Спасибо.
После 1 пункта Ваших указаний, и нахождения общего языка с ораклом - наконец-то получилось. К сожалению, сам не понял почему заработало, но рез-тат важнее.



alexsob

Проблема была в том, что на это:
select sum(X*Y) from (select X, (select ..) as Y) и т.п. выдавалось - ошибка ora 01652.

А по поводу "order by date_price desc" - ничего лучше не смог придумать. Если есть какие-либо приемы подскажите:
требуется вывести строку из таблицы с максимальным(минимальным) значением по какому-либу столбцу.
Автор: svavka
Дата сообщения: 27.01.2011 17:29
IpEr - требуется вывести строку из таблицы с максимальным(минимальным) значением по какому-либу столбцу

агрегатные функции (First_vaue(Last_Value)) помогут
пример
select t.otdel,t.price,t.data
first_value(t.price) over (partition by t.otdel order by t.data desc) last_price,
max(t.price) over (partition by t.otdel) max_price

from testtable t

объяснение работы
оракл разбивает выборку (partition by) на окна(отдельные строки) по критерию t.otdel
при этом сортируя по дате (order by t.data), функция first_value(t.price) выберет из окна первое значение, с max я думаю все понятно.

вообще штука полезная
вот более конкретные описания с перечислением всех возможностей
http:/ /download. oracle. com/ docs/cd/B19306_01/server.102/b14223/analysis.htm


Автор: well2
Дата сообщения: 23.03.2011 16:46
Скажите, Oracle 10.2.0.3 в Windows XP работает?
Автор: slaj1
Дата сообщения: 23.03.2011 17:22
well2
работает

просто нужно использовать правильный дистрибутив
Автор: well2
Дата сообщения: 23.03.2011 20:23
А какой правильный?
В Download вижу только такую строчку для 10.2.0.3
Oracle Database 10g Release 2 (10.2.0.3/10.2.0.4) for Microsoft Windows Vista, Windows Server 2008, Windows 7
Автор: alexsob
Дата сообщения: 06.07.2011 12:29
По поводу релизов Oracle.
Ни у кого не завалялся релиз 7 версии под WinNT / XP ? (хотя под XP был уже 8 релиз, по-моему)
Автор: GrabovVV
Дата сообщения: 05.09.2011 11:01
Народ, может кто в курсе,
Oracl Express для 2008 R2 x64 есть, или планируется??
Автор: omm
Дата сообщения: 06.09.2011 14:11
GrabovVV
imho для 64-битных windows версий XE не будет.
Автор: wasilissk
Дата сообщения: 06.09.2011 14:34
omm
Но почему? Для линуха же есть. Думаю в ближайшем месяце зарелизятся.
Автор: omm
Дата сообщения: 10.09.2011 21:56
wasilissk
10-ки XE под win 64 не было. imho в 11-й вряд ли что-то изменится.
Автор: wasilissk
Дата сообщения: 12.09.2011 08:10
omm
Так и линуха 64 тоже не было.
Автор: rrromano
Дата сообщения: 12.09.2011 18:03
11 Oracle XE есть для Windows 32 и Linux 64. Делаем выводы.
Я, к стати, устанавливал на Windows Server x64 oracle XE 10, но с танцами и, естественно,он от этого не стах 64-битным. )
Автор: wasilissk
Дата сообщения: 13.09.2011 07:17
rrromano
Я про 10 XE линух писал, его не было 64.

Страницы: 1234567891011121314151617181920212223

Предыдущая тема: JET и Excel


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.