powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как использовать VARRAY в SQL?
4 сообщений из 4, страница 1 из 1
Как использовать VARRAY в SQL?
    #32032051
RZH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RZH
Гость
Друзья, объясните, что неправильно в этом куске 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
Как использовать VARRAY в SQL?
    #32032118
олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что такое table(t1) в приведенном куске?
...
Рейтинг: 0 / 0
Как использовать VARRAY в SQL?
    #32037506
Astra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
table(t1) - это приведение к табличному типу сборной конструкции, чтобы можно было использовать в SELECT

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

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

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
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как использовать VARRAY в SQL?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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