Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / 12C знакомые мелодии на тему PL/SQL и new features / 25 сообщений из 34, страница 1 из 2
13.08.2013, 21:25:17
    #38365353
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
Код: plsql
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.
SQL> create or replace
  2    procedure proc_test(
  3                        v_empno in number,
  4                        v_ref_cursor out sys_refcursor
  5                       )
  6      is
  7      begin
  8      open v_ref_cursor
  9        for
 10          with function get_dept_name(
 11                                      p_department_id number
 12                                     )
 13                 return varchar2
 14                 is
 15                     v_dept_name varchar2(100);
 16                 begin
 17                     select  department_name
 18                       into  v_dept_name
 19                       from  hr.departments
 20                       where department_id = p_department_id;
 21                     return v_dept_name;
 22                 end;
 23          select  e.last_name,
 24                  get_dept_name(e.department_id) department_name
 25            from  hr.employees e
 26          where e.employee_id = v_empno;
 27  end;
 28  /

Warning: Procedure created with compilation errors.

SQL> show err
Errors for PROCEDURE PROC_TEST:

LINE/COL ERROR
-------- -----------------------------------------------------------------
9/9      PL/SQL: SQL Statement ignored
9/23     PL/SQL: ORA-00905: missing keyword
SQL>



И традиционный "workaround":

Код: plsql
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.
SQL> create or replace
  2    procedure proc_test(
  3                        v_empno in number,
  4                        v_ref_cursor out sys_refcursor
  5                       )
  6      is
  7      begin
  8      open v_ref_cursor
  9        for
 10          'with function get_dept_name(
 11                                      p_department_id number
 12                                     )
 13                 return varchar2
 14                 is
 15                     v_dept_name varchar2(100);
 16                 begin
 17                     select  department_name
 18                       into  v_dept_name
 19                       from  hr.departments
 20                       where department_id = p_department_id;
 21                     return v_dept_name;
 22                 end;
 23          select  e.last_name,
 24                  get_dept_name(e.department_id) department_name
 25            from  hr.employees e
 26          where e.employee_id = :1' using v_empno;
 27  end;
 28  /

Procedure created.

SQL> variable rc refcursor
SQL> exec proc_test(100,:rc)

PL/SQL procedure successfully completed.

SQL> print rc

LAST_NAME                 DEPARTMENT_NAME
------------------------- --------------------
King                      Executive

SQL>



SY.
...
Рейтинг: 0 / 0
14.08.2013, 00:39:13
    #38365483
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SY,

или через вьюху?
...
Рейтинг: 0 / 0
14.08.2013, 04:32:00
    #38365542
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
Очень интересно. plsql_declarations отсылает на все те-же CREATE FUNCTION/PROCEDURE и Chapter 8, "PL/SQL Subprograms" где так-же как и в 11G черным по белому разьясняется AUTHID DEFINER роли игнорирует. A действительность такова:

Код: plsql
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.
SQL> drop role r1
  2  /

Role dropped.

SQL> drop user u1 cascade
  2  /

User dropped.

SQL> create user u1 identified by u1 default tablespace users;

User created.

SQL> create role r1;

Role created.

SQL> grant select on emp to r1;

Grant succeeded.

SQL> grant select on dept to r1;

Grant succeeded.

SQL> grant r1 to u1;

Grant succeeded.

SQL> grant create session to u1;

Grant succeeded.

SQL> connect u1@pdborcl12/u1
Connected.
SQL> create or replace
  2    function get_dept_name(
  3                           p_deptno number
  4                          )
  5      return varchar2
  6      is
  7          v_dname varchar2(30);
  8      begin
  9          select  dname
 10            into  v_dname
 11            from  scott.dept
 12            where deptno = p_deptno;
 13          return v_dname;
 14  end;
 15  /
create or replace
*
ERROR at line 1:
ORA-01031: insufficient privileges


SQL> with function get_dept_name(
  2                              p_deptno number
  3                             )
  4         return varchar2
  5         is
  6          v_dname varchar2(30);
  7         begin
  8             select  dname
  9               into  v_dname
 10               from  scott.dept
 11               where deptno = p_deptno;
 12             return v_dname;
 13       end;
 14  select  ename,
 15          get_dept_name(e.deptno) dname
 16    from  scott.emp e
 17  /

ENAME      DNAME
---------- ---------------
SMITH      RESEARCH
ALLEN      SALES
WARD       SALES
JONES      RESEARCH
MARTIN     SALES
BLAKE      SALES
CLARK      ACCOUNTING
SCOTT      RESEARCH
KING       ACCOUNTING
TURNER     SALES
ADAMS      RESEARCH

ENAME      DNAME
---------- ---------------
JAMES      SALES
FORD       RESEARCH
MILLER     ACCOUNTING

14 rows selected.

SQL>



Вопрос баг это или фича. Лучше бы последнее.

SY.
...
Рейтинг: 0 / 0
14.08.2013, 08:36:02
    #38365593
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
конечно, это прикольно - в sql свои фнукции писать.
Но это ж под каждый запрос свой экземпляр функции.
Если менять текст этой функции - так во всех запросах.
...
Рейтинг: 0 / 0
14.08.2013, 09:06:47
    #38365604
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SYВопрос баг это или фича
На первый непросвещенный взгляд больше на фичу похоже.

ORA-01031: - отсутствие прав на создание именованного объекта БД заданного сорта.

Ф-ция в селекте - часть самого селекта, а не самостоятельный именованный объект в БД.
И живет как неотъемлемый от селекта кусок для sql-разбора.

На баг это будет тянуть, если ф-ция в with сможет предоставить доступ к таблице, на которую нет явных или косвенных прав доступа.


авторЕсли менять текст этой функции - так во всех запросах.
Думаю, так нет смысла говорить. Область повторного использования with - конкретный селект, а не их множество.
Печалиться об этом выглядит как действие, не пригодное к оцениванию в терминах добра и зла.
...
Рейтинг: 0 / 0
14.08.2013, 09:43:54
    #38365636
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SYВопрос баг это или фича. Лучше бы последнее.Те же яйца:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
declare
   --
   procedure p ...
...
begin 
   p;
end;
...
Рейтинг: 0 / 0
14.08.2013, 09:44:17
    #38365637
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
интересно, насколько велика будет допустимая сложность таких функций
и наличие возможности отладки

ЗЫ: пока даже не представляю, где я их реально буду использовать
...
Рейтинг: 0 / 0
14.08.2013, 10:27:35
    #38365711
_Nikotin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SY,

Попробуй через дерез динамический SQL коллекции побиндить, оно либо рогуется на то что не все переменные прибинжены, либо
ORA-00600: internal error code, arguments: [opipls4], [no bind direction set], [], [], [], [], [], [], [], [], [], []
...
Рейтинг: 0 / 0
14.08.2013, 10:42:39
    #38365737
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
andreymxЗЫ: пока даже не представляю, где я их реально буду использоватьпридумал где )
можно будет меньше вложенных подзапросов
...
Рейтинг: 0 / 0
14.08.2013, 13:24:46
    #38366084
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SYОчень интересно. plsql_declarations отсылает на все те-же CREATE FUNCTION/PROCEDURE и Chapter 8, "PL/SQL Subprograms" где так-же как и в 11G черным по белому разьясняется AUTHID DEFINER роли игнорирует. A действительность такова:
..

Вопрос баг это или фича. Лучше бы последнее.

SY.
имхо, всё логично.
with function до боли похож на pl/sql, но таки суть чистый sql
...
Рейтинг: 0 / 0
14.08.2013, 15:39:12
    #38366359
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
orawishимхо, всё логично.
with function до боли похож на pl/sql, но таки суть чистый sqlсамое интересное, что они смогут возвращать разный результат при одном и том же тексте :)
...
Рейтинг: 0 / 0
14.08.2013, 15:57:26
    #38366391
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
-2-Те же яйца

Не совсем. Локальную функцию нельзя использовать в SQL:

Код: plsql
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.
SQL> declare
  2      function get_dept_name(
  3                             p_deptno number
  4                          )
  5        return varchar2
  6        is
  7            v_dname varchar2(30);
  8        begin
  9            select  dname
 10              into  v_dname
 11              from  scott.dept
 12              where deptno = p_deptno;
 13            return v_dname;
 14      end;
 15  begin
 16      for v_rec in (select ename,get_dept_name(e.deptno) dname from scott.emp e) loop
 17        dbms_output.put_line(v_rec.ename || ', ' || v_rec.dname);
 18      end loop;
 19  end;
 20  /
    for v_rec in (select ename,get_dept_name(e.deptno) dname from scott.emp e) loop
                               *
ERROR at line 16:
ORA-06550: line 16, column 32:
PLS-00231: function 'GET_DEPT_NAME' may not be used in SQL
ORA-06550: line 16, column 32:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 16, column 19:
PL/SQL: SQL Statement ignored
ORA-06550: line 17, column 28:
PLS-00364: loop index variable 'V_REC' use is invalid
ORA-06550: line 17, column 7:
PL/SQL: Statement ignored


SQL>



Т.е. с помощью WITH FUNCTION можно обойти ситуацию когда привилегий напрямую нет, есть только через роль.

SY.
...
Рейтинг: 0 / 0
14.08.2013, 16:12:38
    #38366419
_Nikotin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SY,

Почитай про bequeath для view, не совсем то, но забавно. И с глюками :-)
...
Рейтинг: 0 / 0
14.08.2013, 16:57:47
    #38366518
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SY-2-Те же яйцаНе совсем. Локальную функцию нельзя использовать в SQLя о том, что локальная функция в анонимном блоке и локальная в sql-"блоке" с точки зрения прав ведут себя одинаково.
...
Рейтинг: 0 / 0
14.08.2013, 17:41:16
    #38366601
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
_NikotinSY,

Почитай про bequeath для view, не совсем то, но забавно.

А чем забавно?

SY.
...
Рейтинг: 0 / 0
15.08.2013, 00:26:54
    #38366964
_Nikotin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SY,

В смысле само по себе забавно - вьюха как дефайнер работает, а authid current_user функции внутри - с правами того кто вьюху селектит. Винегрет какой-то.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
09.09.2016, 13:44:26
    #39306581
dimyaz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
А есть среды разработки, которые поддерживают этот функционал?

Просто у меня простой запросик:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
WITH                                                                          
FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
IS
BEGIN
   RETURN p_str || ' World';
END;
SELECT str_plus('Hello') FROM dual;
/



Отработал только на sqlplus.

SQL Developer и тем более PL/SQL Developer отказываются его воспринимать.
...
Рейтинг: 0 / 0
09.09.2016, 14:04:46
    #39306592
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
dimyazОтработал только на sqlplus. SQL Developer и тем более PL/SQL Developer отказываются его воспринимать.

SQL*Plus отработал гворишь? Медитируй над:

Код: plsql
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.
SQL*Plus: Release 11.2.0.3.0 Production on Fri Sep 9 06:49:26 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter user-name: scott@pdborcl12
Enter password:

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> WITH
  2  FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
  3  IS
  4  BEGIN
  5     RETURN p_str || ' World';
FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
*
ERROR at line 2:
ORA-06553: PLS-103: Encountered the symbol "end-of-file" when expecting one of
the following:
* & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || member submultiset


SQL> END;
SP2-0042: unknown command "END" - rest of line ignored.
SQL> SELECT str_plus('Hello') FROM dual;
SELECT str_plus('Hello') FROM dual
       *
ERROR at line 1:
ORA-00904: "STR_PLUS": invalid identifier


SQL> /



И:

Код: plsql
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.
SQL*Plus: Release 12.1.0.1.0 Production on Fri Sep 9 06:50:09 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter user-name: scott@pdborcl12
Enter password:
Last Successful login time: Fri Sep 09 2016 06:49:40 -04:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> WITH
  2  FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
  3  IS
  4  BEGIN
  5     RETURN p_str || ' World';
  6  END;
  7  SELECT str_plus('Hello') FROM dual;
  8  /

STR_PLUS('HELLO')
--------------------------------------------------------------------------------
Hello World

SQL>



Когда промедитируешь то пoлучишь ответ и для SQL Developer.

A когда промедитируешь над:

Код: plsql
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.
SQL*Plus: Release 12.1.0.1.0 Production on Fri Sep 9 06:55:21 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter user-name: scott@pdborcl12
Enter password:
Last Successful login time: Fri Sep 09 2016 06:52:27 -04:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> DECLARE
  2      V_RES VARCHAR2(20);
  3  BEGIN
  4      WITH
  5      FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
  6      IS
  7      BEGIN
  8         RETURN p_str || ' World';
  9      END;
 10      SELECT str_plus('Hello') INTO V_RES FROM dual;
 11      DBMS_OUTPUT.PUT_LINE(V_RES);
 12  END;
 13  /
    FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
             *
ERROR at line 5:
ORA-06550: line 5, column 14:
PL/SQL: ORA-00905: missing keyword
ORA-06550: line 4, column 5:
PL/SQL: SQL Statement ignored
ORA-06550: line 10, column 5:
PLS-00103: Encountered the symbol "SELECT"


SQL>



то и вопрос по PL/SQL Developer отпадет.

SY.
...
Рейтинг: 0 / 0
09.09.2016, 14:07:37
    #39306597
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
...
Рейтинг: 0 / 0
09.09.2016, 14:49:53
    #39306635
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
ElicSYSQL*Plus отработал гворишь? Нужно всего лишь правильно прятать запяточие

Все зависит от парсера клиента. Запяточие тут ни причем - попробуй свой SQL введенный не в одну строку:

Код: plsql
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.
SQL> with function f(x in int) return int is begin return -x; end; select f(rownum) from dual
  2  /

 F(ROWNUM)
----------
        -1

SQL> with function f(x in int) return int
  2  is begin return -x; end; select f(rownum) from dual
  3  /

 F(ROWNUM)
----------
        -1

SQL> with function f(x in int) return int is begin return -x; end;
with function f(x in int) return int is begin return -x; end
     *
ERROR at line 1:
ORA-06553: PLS-103: Encountered the symbol "end-of-file" when expecting one of
the following:
; <an identifier> <a double-quoted delimited-identifier>
current delete exists prior <a single-quoted SQL string>
The symbol ";" was substituted for "end-of-file" to continue.


SQL> with function f(x in int) return int is begin return -x;
with function f(x in int) return int is begin return -x
     *
ERROR at line 1:
ORA-06553: PLS-103: Encountered the symbol "end-of-file" when expecting one of
the following:
. ( * @ % & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || member submultiset


SQL> with function f(x in int) return
  2  int is begin return -x;
with function f(x in int) return
     *
ERROR at line 1:
ORA-06553: PLS-103: Encountered the symbol "end-of-file" when expecting one of
the following:
. ( * @ % & = - + ; < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || member submultiset


SQL>



SY.
...
Рейтинг: 0 / 0
09.09.2016, 14:53:11
    #39306641
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
Упс, дошло.

SY.
...
Рейтинг: 0 / 0
09.09.2016, 15:36:06
    #39306679
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
dimyazА есть среды разработки, которые поддерживают этот функционал?

Просто у меня простой запросик:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
WITH                                                                          
FUNCTION str_plus(p_str VARCHAR2) RETURN VARCHAR2
IS
BEGIN
   RETURN p_str || ' World';
END;
SELECT str_plus('Hello') FROM dual;
/



Отработал только на sqlplus.

SQL Developer и тем более PL/SQL Developer отказываются его воспринимать.

Возьмите свежий SQL Developer.

Функции в WITH поддерживает Oracle SQL Developer 4.0.2 и старше.
...
Рейтинг: 0 / 0
09.09.2016, 15:36:52
    #39306680
dimyaz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
SY,

Итак медитация с sqldeveloper помогла, после установки официально последней версии.


Тоже самое сделал с PL/SQL Developer, но он не хочет выполнять команду все равно.
...
Рейтинг: 0 / 0
09.09.2016, 15:53:25
    #39306705
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
dimyazSY,

Итак медитация с sqldeveloper помогла, после установки официально последней версии.


Тоже самое сделал с PL/SQL Developer, но он не хочет выполнять команду все равно.
Что вам ответили в техподдержке компании Allround Automations?
...
Рейтинг: 0 / 0
09.09.2016, 16:13:11
    #39306727
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12C знакомые мелодии на тему PL/SQL и new features
dimyazSY,
Тоже самое сделал с PL/SQL Developer, но он не хочет выполнять команду все равно.

По "традиции" PL/SQL Release 1 каждой версии не поддерживает многие новые возожности SQL. Обход - динамический SQL.

SY.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / 12C знакомые мелодии на тему PL/SQL и new features / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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