Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как послать в динамический PL/SQL блок чтото большое. / 2 сообщений из 2, страница 1 из 1
03.12.2002, 16:25
    #32075212
none
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как послать в динамический PL/SQL блок чтото большое.
Необходио в динамический PL-SQL блок послать чтото, что не относится к простому типу, например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SQL> DECLARE
   2    TYPE ParamsArrayType IS TABLE OF VARCHAR2( 4000 );
   3    ParamsArray ParamsArrayType := ParamsArrayType();
   4   BEGIN
   5    EXECUTE IMMEDIATE
   6     '
  7     DECLARE
  8      ParamsArray ParamsArrayType := :1; 
  9     BEGIN
 10      NULL;
 11     END;
 12     
 13    ' USING ParamsArray;
  14     NULL;
  15   END;
  16   /
  ' USING ParamsArray;
          *
ERROR at line  13 :
ORA- 06550 : line  13 , column  11 :
PLS- 00457 : expressions have to be of SQL types
ORA- 06550 : line  5 , column  2 :
PL/SQL: Statement ignored


Оракл ругается. Говорит подсовывай простые типы. Можно както эту проблему разрулить? Может чтото с курсорами поплясать. Хотя и курсор так не передаш. Видимо проблема не решаема. Или как?
...
Рейтинг: 0 / 0
03.12.2002, 16:59
    #32075242
none
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как послать в динамический PL/SQL блок чтото большое.
Вопрос снят. Дело было не в бобине ... (далее сами знаете). Тип нужно было объявить глобально:

Код: 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.
SQL> CREATE OR REPLACE TYPE ParamsArrayType IS TABLE OF VARCHAR2( 4000 );
   2   /

Type created.

Elapsed:  00 : 00 : 01 . 32 
SQL> 
SQL> 
SQL> DECLARE
   2    ParamsArray ParamsArrayType := ParamsArrayType();
   3   BEGIN
   4    
   5    EXECUTE IMMEDIATE
   6    '
  7   DECLARE
  8    ParamsArray ParamsArrayType := :1; 
  9   BEGIN
 10    NULL;
 11   END;
 12   ' USING ParamsArray;
  13    
  14     NULL;
  15   END;
  16   /

PL/SQL procedure successfully completed.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как послать в динамический PL/SQL блок чтото большое. / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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