powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с запросом
15 сообщений из 15, страница 1 из 1
Помогите с запросом
    #32095135
vsim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гложет смутное предчувствие что это сделать нельзя, но посоветуйте начинающему как лучше сделать:
Есть две даты. Хотелось бы одним запросом получить все даты между ними.
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095140
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095141
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, и есть несколько способов. Например, можно создать таблицу с одной колонкой, в которую занести все даты за несколько лет вперёд и назад, и делать выборку из неё. Можно на лету генерировать, базируясь на какой-нибудь заведомо длинной таблице или представлении (чтобы количество строк было не меньше количества дней в рассматриваемом периоде). В 9i ещё как-то можно, сейчас кто-нибудь подскажет :)
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095147
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и думал, что сейчас Денис ответит :))
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095149
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык:) В 9i, да и в 8i можно написать функцию с диапазоном дат в качестве аргументов, возвращающую объектную таблицу, и использовать ее в select'е. Принцип описан тут: http://otn.oracle.com/oramag/oracle/02-sep/o52sql.html
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095282
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот поэкспериментировал и получил следующие результаты (не уверен, что мой код иделаен :) )

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
SQL> create table d_pivot (dt date not null, constraint d_pivot_dt_pk primary key (dt)) organization index;

Table created.

SQL> create table n_pivot (dt number( 5 ) not null, constraint n_pivot_dt_pk primary key (dt)) organization index;

Table created.

SQL> create table someshit (dt date not null, val number( 5 ) not null, constraint someshit_dt_pk primary key (dt));

Table created.

SQL> declare
   2   i number;
   3   begin
   4   for i in  1 .. 10000  loop
   5      insert into d_pivot values (trunc(sysdate -  365 * 5  + i));
   6      insert into n_pivot values (i);
   7   end loop;
   8   end;
   9   /

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

SQL> declare
   2   i number;
   3   begin
   4   for i in  1 .. 1000  loop
   5      insert into someshit (dt, val) values (trunc(sysdate -  365 * 5  + i* 2 ), i);
   6   end loop;
   7   end;
   8   /

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

SQL> select min(dt), max(dt) from d_pivot;

MIN(DT)   MAX(DT)
 --------- ---------
 
 25 -JAN- 98   11 -JUN- 25 


SQL> select min(dt), max(dt) from n_pivot;

   MIN(DT)    MAX(DT)
 ---------- ----------
 
          1        10000 


SQL> select min(dt), max(dt) from someshit;

MIN(DT)   MAX(DT)
 --------- ---------
 
 26 -JAN- 98   17 -JUL- 03 


SQL> begin
   2      dbms_utility.analyze_schema('EJB', 'COMPUTE');
   3   end;
   4   /

PL/SQL procedure successfully completed.

SQL> set autotrace traceonly explain statistics
SQL> set timing on
SQL>  -- вариант 1
 
SQL> select
   2      dp.dt,
   3      nvl(s.val,  0 )
   4   from
   5      d_pivot dp,
   6      someshit s
   7   where
   8      ( 1  =  1 )
   9      and (dp.dt = s.dt (+))
  10      and (dp.dt between to_date('07-11-2002', 'DD-MM-YYYY') and to_date('23-01-2003', 'DD-MM-YYYY'))
  11   order by
  12      dp.dt asc;

 78  rows selected.

Elapsed:  00 : 00 : 00 . 44 

Execution Plan
 ----------------------------------------------------------
 
    0       SELECT STATEMENT Optimizer=CHOOSE (Cost= 6  Card= 80  Bytes= 1360 )
    1      0    SORT (ORDER BY) (Cost= 6  Card= 80  Bytes= 1360 )
    2      1      HASH JOIN (OUTER) (Cost= 4  Card= 80  Bytes= 1360 )
    3      2        INDEX (RANGE SCAN) OF 'D_PIVOT_DT_PK' (UNIQUE) (Cost= 2  Card= 80  Bytes= 560 )
    4      2        TABLE ACCESS (FULL) OF 'SOMESHIT' (Cost= 1  Card= 1000  Bytes= 10000 )

Statistics
 ----------------------------------------------------------
 
           0   recursive calls
           4   db block gets
           5   consistent gets
           0   physical reads
           0   redo size
        3148   bytes sent via SQL*Net to client
         980   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           5   sorts (memory)
           0   sorts (disk)
          78   rows processed


SQL>  -- вариант 2
 
SQL> select
   2      dp.dt,
   3      nvl(q.val,  0 )
   4   from
   5      d_pivot dp,
   6      (select  /*+INDEX(s someshit_dt_pk) */  dt, val from someshit s where s.dt between to_date('07-11-2002', 'DD-MM-YYYY') and to_date('23-01-2003', 'DD-MM-YYYY')) q
   7   where
   8      ( 1  =  1 )
   9      and (dp.dt = q.dt (+))
  10      and (dp.dt between to_date('07-11-2002', 'DD-MM-YYYY') and to_date('23-01-2003', 'DD-MM-YYYY'))
  11   order by
  12      dp.dt asc;

 78  rows selected.

Elapsed:  00 : 00 : 00 . 42 

Execution Plan
 ----------------------------------------------------------
 
    0       SELECT STATEMENT Optimizer=CHOOSE (Cost= 7  Card= 80  Bytes= 1360 )
    1      0    MERGE JOIN (OUTER) (Cost= 7  Card= 80  Bytes= 1360 )
    2      1      INDEX (RANGE SCAN) OF 'D_PIVOT_DT_PK' (UNIQUE) (Cost= 2  Card= 80  Bytes= 560 )
    3      1      SORT (JOIN) (Cost= 5  Card= 41  Bytes= 410 )
    4      3        TABLE ACCESS (BY INDEX ROWID) OF 'SOMESHIT' (Cost= 3  Card= 41  Bytes= 410 )
    5      4          INDEX (RANGE SCAN) OF 'SOMESHIT_DT_PK' (UNIQUE) (Cost= 2  Card= 41 )

Statistics
 ----------------------------------------------------------
 
           8   recursive calls
           0   db block gets
          18   consistent gets
           3   physical reads
           0   redo size
        3148   bytes sent via SQL*Net to client
         980   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           3   sorts (memory)
           0   sorts (disk)
          78   rows processed


SQL>  -- вариант 3
 
SQL> select
   2      q.dt,
   3      nvl(s.val,  0 )
   4   from
   5      (select (to_date('07-11-2002', 'DD-MM-YYYY') + np.dt -  1 ) dt from n_pivot np) q,
   6      someshit s
   7   where
   8      ( 1  =  1 )
   9      and (q.dt = s.dt (+))
  10      and (q.dt <= to_date('23-01-2003', 'DD-MM-YYYY'))
  11   order by
  12      q.dt asc;

 78  rows selected.

Elapsed:  00 : 00 : 00 . 58 

Execution Plan
 ----------------------------------------------------------
 
    0       SELECT STATEMENT Optimizer=CHOOSE (Cost= 6  Card= 500  Bytes= 6500 )
    1      0    SORT (ORDER BY) (Cost= 6  Card= 500  Bytes= 6500 )
    2      1      HASH JOIN (OUTER) (Cost= 3  Card= 500  Bytes= 6500 )
    3      2        INDEX (FAST FULL SCAN) OF 'N_PIVOT_DT_PK' (UNIQUE) (Cost= 1  Card= 500  Bytes= 1500 )
    4      2        TABLE ACCESS (FULL) OF 'SOMESHIT' (Cost= 1  Card= 1000  Bytes= 10000 )

Statistics
 ----------------------------------------------------------
 
         256   recursive calls
           8   db block gets
          66   consistent gets
          16   physical reads
           0   redo size
        3148   bytes sent via SQL*Net to client
         980   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           9   sorts (memory)
           0   sorts (disk)
          78   rows processed

SQL>  -- вариант 4
 
SQL> select
   2      q.dt,
   3      nvl(s.val,  0 )
   4   from
   5      (select (to_date('07-11-2002', 'DD-MM-YYYY') + np.dt -  1 ) dt from n_pivot np where np.dt < (to_date('23-01-2003', 'DD-MM-YYYY') - to_date('07-11-2002', 'DD-MM-YYYY') +  2 )) q,
   6      someshit s
   7   where
   8      ( 1  =  1 )
   9      and (q.dt = s.dt (+))
  10   order by
  11      q.dt asc;

 78  rows selected.

Elapsed:  00 : 00 : 00 . 43 

Execution Plan
 ----------------------------------------------------------
 
    0       SELECT STATEMENT Optimizer=CHOOSE (Cost= 5  Card= 79  Bytes= 1027 )
    1      0    SORT (ORDER BY) (Cost= 5  Card= 79  Bytes= 1027 )
    2      1      HASH JOIN (OUTER) (Cost= 3  Card= 79  Bytes= 1027 )
    3      2        INDEX (FAST FULL SCAN) OF 'N_PIVOT_DT_PK' (UNIQUE) (Cost= 1  Card= 79  Bytes= 237 )
    4      2        TABLE ACCESS (FULL) OF 'SOMESHIT' (Cost= 1  Card= 1000  Bytes= 10000 )

Statistics
 ----------------------------------------------------------
 
           0   recursive calls
           8   db block gets
          18   consistent gets
           0   physical reads
           0   redo size
        3148   bytes sent via SQL*Net to client
         980   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           3   sorts (memory)
           0   sorts (disk)
          78   rows processed

SQL>  -- вариант 5
 
SQL> select
   2      q.dt,
   3      nvl(s.val,  0 )
   4   from
   5      (select (to_date('07-11-2002','DD-MM-YYYY') + r) dt from (select (rownum -  1 ) r from all_objects where rownum < (to_date('23-01-2003','DD-MM-YYYY') - to_date('07-11-2002','DD-MM-YYYY') +  2 ))) q,
   6      someshit s
   7   where
   8      ( 1  =  1 )
   9      and (q.dt = s.dt (+))
  10   order by
  11      q.dt asc;

 78  rows selected.

Elapsed:  00 : 00 : 00 . 78 

Execution Plan
 ----------------------------------------------------------
 
ERROR:
ORA- 01039 : insufficient privileges on underlying objects of the view


SP2- 0612 : Error generating AUTOTRACE EXPLAIN report

Statistics
 ----------------------------------------------------------
 
         757   recursive calls
           9   db block gets
         640   consistent gets
          14   physical reads
           0   redo size
        3148   bytes sent via SQL*Net to client
         980   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
          67   sorts (memory)
           0   sorts (disk)
          78   rows processed
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095364
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень просто:

[scr]
select date_start + rownum -1 from all_objects
where rownum < date_end - date_start + 1;
[scr]
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095397
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А всё одно - любое использование all_objects вырождается в:
1. Тормоза
2. Ограничение по количеству возвращаемых строк
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095430
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mogesh primenit LUBUYU tablu, kakuyu schitaesh nugnoy, prosto all_objects vsegda pod rukoy.

Dalee ogranichenie v 3000-5000 zapisey dlia takih zaprocov to kalendar na 5-10 let. Vpolne dostatochno.
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095466
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то мне это не нравится:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
   1   select to_date('07-11-2002','DD-MM-YYYY') + rownum -  1  from all_objects
   2   where rownum < to_date('23-01-2003','DD-MM-YYYY') -
   3 * to_date('07-11-2002','DD-MM-YYYY') +  2 
SQL> /

 78  rows selected.

Elapsed:  00 : 00 : 00 . 45 

Execution Plan
 ----------------------------------------------------------
 
    0       SELECT STATEMENT Optimizer=CHOOSE
    1      0    COUNT (STOPKEY)
    2      1      FILTER
    3      2        NESTED LOOPS
    4      3          TABLE ACCESS (FULL) OF 'USER$'
    5      3          TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
    6      5            INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
    7      2        TABLE ACCESS (BY INDEX ROWID) OF 'IND$'
    8      7          INDEX (UNIQUE SCAN) OF 'I_IND1' (UNIQUE)
    9      2        NESTED LOOPS
   10      9          FIXED TABLE (FULL) OF 'X$KZSRO'
   11      9          TABLE ACCESS (BY INDEX ROWID) OF 'OBJAUTH$'
   12     11            INDEX (RANGE SCAN) OF 'I_OBJAUTH2' (NON-UNIQUE)
   13      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   14      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   15      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   16      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   17      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   18      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   19      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   20      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   21      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   22      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   23      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   24      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   25      2        FIXED TABLE (FULL) OF 'X$KZSPR'
   26      2        FIXED TABLE (FULL) OF 'X$KZSPR'

Statistics
 ----------------------------------------------------------
 
           7   recursive calls
           4   db block gets
          89   consistent gets
           0   physical reads
           0   redo size
        2588   bytes sent via SQL*Net to client
         980   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           0   sorts (memory)
           0   sorts (disk)
          78   rows processed
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095483
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
dan@oraspb>; create or replace type tbl_date_pivot as table of date;
   2   /

Type created.

dan@oraspb>; create or replace function pivot_date (
   2       p_start_date date
   3     , p_end_date date
   4   ) return tbl_pivot_date
   5   pipelined is
   6     outrow date;
   7     i date := trunc(p_start_date);
   8   begin
   9     loop
  10       outrow := i;
  11       pipe row(outrow);
  12       i := i +  1 ;
  13       exit when i > p_end_date;
  14     end loop;
  15     return;
  16   end;
  17   /

Function created.

dan@oraspb>; set autot traceonly stat
dan@oraspb>; select * from table(pivot_date(to_date('07-11-2002','DD-MM-YYYY'), to_date('23-01-2003',
'DD-MM-YYYY')));

 78  rows selected.


Statistics
 ----------------------------------------------------------
 
          23   recursive calls
           0   db block gets
          32   consistent gets
           0   physical reads
           0   redo size
        1518   bytes sent via SQL*Net to client
         550   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           0   sorts (memory)
           0   sorts (disk)
          78   rows processed

Но интересно, если повторить запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
dan@oraspb>; set autot traceonly exp stat
dan@oraspb>; select * from table(pivot_date(to_date('07-11-2002','DD-MM-YYYY'), to_date('23-01-2003',
'DD-MM-YYYY')));

 78  rows selected.


Execution Plan
 ----------------------------------------------------------
 
    0       SELECT STATEMENT Optimizer=FIRST_ROWS (Cost= 11  Card= 6120 )
    1      0    COLLECTION ITERATOR (PICKLER FETCH) OF 'PIVOT_DATE'




Statistics
 ----------------------------------------------------------
 
           0   recursive calls
           0   db block gets
           0   consistent gets
           0   physical reads
           0   redo size
        1518   bytes sent via SQL*Net to client
         550   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           0   sorts (memory)
           0   sorts (disk)
          78   rows processed

А предыдущий запрос от Scott Tiger у меня постоянно 425 consistent gets выдает.
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095514
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это pipelined, сиречь девятка...
У меня после многочисленных прогонов свелось к варианту

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Statistics
 ----------------------------------------------------------
 
           0   recursive calls
           4   db block gets
          87   consistent gets
           0   physical reads
           0   redo size
        2588   bytes sent via SQL*Net to client
         980   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           0   sorts (memory)
           0   sorts (disk)
          78   rows processed



Я вот всё жду, может, какой-нибудь деятель выдаст классический вариант с вьюхой и union all
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095541
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если только даты тащить, без всяких джоинов с таблицами с данными, получается такая картина:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
   1 * select dt from d_pivot where dt between to_date('07-11-2002', 'DD-MM-YYYY') and to_date('23-01-2003', 'DD-MM-YYYY')
SQL> /

 78  rows selected.

Execution Plan
 ----------------------------------------------------------
 
    0       SELECT STATEMENT Optimizer=CHOOSE (Cost= 2  Card= 80  Bytes= 560 )
    1      0    INDEX (RANGE SCAN) OF 'D_PIVOT_DT_PK' (UNIQUE) (Cost= 2  Card= 80  Bytes= 560 )

Statistics
 ----------------------------------------------------------
 
           0   recursive calls
           0   db block gets
           8   consistent gets
           0   physical reads
           0   redo size
        2547   bytes sent via SQL*Net to client
         980   bytes received via SQL*Net from client
           7   SQL*Net roundtrips to/from client
           0   sorts (memory)
           0   sorts (disk)
          78   rows processed
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095733
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для 8i вроде так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
create or replace type tbl_date as table of date;
/
create or replace function pivot_date (
    p_start_date date
  , p_end_date date
) return tbl_date is
  v_date tbl_date := tbl_date();
  i binary_integer :=  1 ;
begin
  loop
    v_date.extend;
    v_date(i) := p_start_date + i -  1 ;
    i := i +  1 ;
    exit when p_start_date + i > p_end_date;
  end loop;
  return v_date;
end;
/
select * 
from table(cast(pivot_date(to_date('03.12.2002', 'dd.mm.yyyy'), to_date('06.12.2002', 'dd.mm.yyyy')) as tbl_date));
...
Рейтинг: 0 / 0
Помогите с запросом
    #32095806
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно работает и, к тому же, достаточно прилично. Спасибо за просвещение :)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]