Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенос данных из поля таблицы в таблицу PL/SQL 
:(
    Опции темы
olga90
Дата 14.4.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



На сервере есть таблица Data(данные), в которой есть поля Number (ключевое поле) и поле Name (наименование)

Нужно в файле my_file.sql записать следующее:
при помощи курсора PL/SQL и переменной типа запись перенести данные из поля «Number» таблицы «Data» в таблицу PL/SQL.

Алгоритм такой:
1. Объявить тип запись
2. Объявить тип таблицы хранящей эти записи
3. Объявить перемунную типа таблицы.
4. Написать цикл по курсору
5. Каждую запись из цикла записать в переменую типа таблицы

сделала только 1-3 пункты

Код

declare
  type table1 is table of My_sceme.Data%rowtype;
  t1  table1;
begin
  --...
end;


помогите реализовать пункты 4-5
Код

select  "Number" BULK COLLECT into t1 from My_sceme.Data;


не предлагать - нужно именно через курсор
PM MAIL   Вверх
olga90
Дата 15.4.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



неуели никто не знает???  smile 
PM MAIL   Вверх
LSD
Дата 15.4.2007, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(olga90 @  15.4.2007,  11:38 Найти цитируемый пост)
неуели никто не знает???

Просто нужно время, чтобы посидеть и разобраться.

Выложи готовый код, что тебе уже удалось сделать.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
olga90
Дата 15.4.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



Цитата(LSD @  15.4.2007,  09:41 Найти цитируемый пост)
Выложи готовый код, что тебе уже удалось сделать.

вот что я накидала - но не знаю правильно ли или нет, т.к. щас нет доступа к серверу
Код

set serveroutput on
declare
 type table1 is table of integer;
 My_Table  table1;

type record1 is record ("Number" My_sceme.Data."Number") ;    
My_record record1;
  
cursor My_cursor is Select "Number" from My_sceme.Data;
begin 
open My_cursor;
LOOP
 FETCH My_cursor INTO My_table;
 EXIT WHEN My_cursor%NOTFOUND; 
END LOOP;
close My_cursor;
end;
/


PM MAIL   Вверх
DimW
Дата 16.4.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



вот рабочий пример, который наполняет pl-таблицу данными из поля number_ таблицы data:
Код

declare 
  type t_data is table of data%rowtype 
    index by binary_integer;
  plt_val t_data;
  
  cursor c_data is 
    (select number_ from data);
    
  n binary_integer := 1; 
begin
  open c_data; 
  loop
    fetch c_data into plt_val(n).number_;
    n := n + 1;
    exit when c_data%notfound;
  end loop;
  close c_data;
end;


Добавлено @ 11:56
Цитата(olga90 @  14.4.2007,  14:12 Найти цитируемый пост)
код SQL
1:

select  "Number" BULK COLLECT into t1 from My_sceme.Data;

не предлагать - нужно именно через курсор 


ну и зря!


Это сообщение отредактировал(а) DimW - 16.4.2007, 15:30
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.