Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как использовать VARRAY в SQL? / 4 сообщений из 4, страница 1 из 1
07.06.2002, 13:20
    #32032051
RZH
RZH
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать VARRAY в SQL?
Друзья, объясните, что неправильно в этом куске PL/SQL:
declare
type t is varray(10) of numeric;
type refcur is ref cursor;
t1 t;
c1 refcur;
i numeric(38);
s varchar2(1024);
begin
t1 := t(101, 102, 103, 104, 105, 106, 107, 108, 109, 110);
for i in 1..10 loop
dbms_output.put_line('t1(' || to_char(i) || ') = ' || to_char(t1(i)));
end loop;
open c1 for
select *
from table(t1);
end;
Ошибки:
ORA-00600
ORA-06544
ORA-06553
...
Рейтинг: 0 / 0
07.06.2002, 17:12
    #32032118
олег
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать VARRAY в SQL?
а что такое table(t1) в приведенном куске?
...
Рейтинг: 0 / 0
18.07.2002, 16:39
    #32037506
Astra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать VARRAY в SQL?
table(t1) - это приведение к табличному типу сборной конструкции, чтобы можно было использовать в SELECT

по идее, тоже самое можно делать и с переменными, объявленными как вложенные таблицы, но у меня та же ситуация, и те же ошибки :(

Может, кто-нибудь все-таки знает, как с этим бороться?
...
Рейтинг: 0 / 0
18.07.2002, 17:08
    #32037520
RZH
RZH
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать VARRAY в SQL?
Ну что ж, отвечу на собственный вопрос сам:

1. Переменные типа VARRAY нельзя преобразовать в таблицу БД, нужно использовать переменные типа TABLE и тип этот должен быть создан на уровне БД, а не в PL/SQL-блоке.
create or replace type t as TABLE OF numeric;

2. Нужно использовать магическую конструкцию:
open c1 for
select *
from table(cast(t1 AS t));
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как использовать VARRAY в SQL? / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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