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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как загнать результат выборки в массив? 
:(
    Опции темы
azesmcar
Дата 26.3.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(alt5000 @  26.3.2010,  14:29 Найти цитируемый пост)

В общем... этой функции нужна позиция (1) и длина (2)

И каким образом удалить последний символ?

а функция length и арифметическая операция - (минус)?

Цитата(alt5000 @  26.3.2010,  14:29 Найти цитируемый пост)
Я думал есть ф-ция типа trim, там right_trim, например... 

trim удаляет все символы а не 1, если я не ошибаюсь там нельзя указать количество удаляемых символов. Если это устраивает - тогда RTRIM.
А вообще такие вопросы решаются с помощью документации
http://psoug.org/reference/string_func.html

так намного быстрее, чем ждать ответа на форуме

Это сообщение отредактировал(а) azesmcar - 26.3.2010, 14:34
PM   Вверх
alt5000
  Дата 26.3.2010, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.4.2006
Где: г. Выборг

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



Да, Вы правы. Спасибо, Вы мне очень помогли. Закончу - отпишусь как все получилось.

Добавлено через 6 минут и 1 секунду
Получилось вот так:

Код

declare
    sels apex_application_global.vc_arr2; -- ÷èñëà èç content çàïèñè
    tmp VARCHAR2(1000); -- ïåðåìåííàÿ ïîëÿ content
    gen_arr apex_application_global.vc_arr2;-- íàáîð id çàïèñåé
    sample_arr apex_application_global.vc_arr2; -- âûáîð øàòòëà
    i pls_integer;
    cnt pls_integer default 0;
    new_templ varchar2(1000); -- "ïåðåñòðîåííûé" òåìïëåéò
    collect_tmpl apex_application_global.vc_arr2; -- íàáîð ãîòîâûõ ïðîâåðåííûõ øàáëîíîâ
    tmp_A varchar2(1000); -- :)
    digits_arr apex_application_global.vc_arr2;
begin

  /* IDS Resolve */
  sample_arr(1):= 67;
  sample_arr(2):= 73;
  sample_arr(3):= 69;
  sample_arr(4):= 81;
  sample_arr(5):= 121;


  select templ_id bulk collect into gen_arr from tc_templs_user where user_id='ALT'; -- Âûáèðàåò ids øàáëîíîâ


-- DBG Sector
for i in 1..gen_arr.count loop
tmp:= tmp||gen_arr(i)||':';
end loop;

for a in 1..sample_arr.count loop
tmp_A:=tmp_A||sample_arr(a)||':';
end loop;

dbms_output.put_line('ID Recs user: '||tmp);
dbms_output.put_line('Sample: '||tmp_A);
dbms_output.put_line('----------');
-- DBG Sector

for i in 1..gen_arr.count loop -- in the IDS Mains

   select content into tmp from tc_templs_user where user_id = 'ALT' and templ_id = gen_arr(i); -- Ns id
   dbms_output.put_line('for id: '||gen_arr(i)||' tmp: '||tmp);
   Digits_arr:= APEX_UTIL.STRING_TO_TABLE(tmp); -- ids from current CONTENT
    
    for s in 1..Digits_arr.count loop
    
        for a in 1..sample_arr.count loop -- iterations by sample
        if digits_arr(s)=sample_arr(a) then
        new_templ:=new_templ||sample_arr(a)||':';
        end if;
        end loop;
    
    end loop; 
    
     new_templ:=RTRIM(new_templ,':');
    dbms_output.put_line('for # '||i||' are new_tmpl: '||new_templ);
   
   

-- Execution erase or update 

if new_templ is null then
dbms_output.put_line('Erasing record');
else
dbms_output.put_line('Updating record');
end if;

 dbms_output.put_line('===========================');
 
 new_templ:=null;
end loop;

end;


Вроде как правильно формирует новые строки шаблонов... осталось добавить строки реального удаления и апдейта для записей...

Добавлено через 14 минут и 39 секунд
Да, подошло, просто указываешь "конструкцию обрезки" smile

Код

new_templ:=RTRIM(new_templ,':');

PM MAIL WWW   Вверх
Zloxa
Дата 26.3.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Цитата(alt5000 @  26.3.2010,  13:10 Найти цитируемый пост)
 на "балках"

использование балков без лимитов признак либо глупости либо самоуверенности.

Не уверен что постиг великую премудрость, но вот этот огород из циклов не эквивалентен ли:
Код

SQL> with tc_templs_user as
  2   (select 'ALT' user_id, '10:11:67:30' content  from dual
  3    union all select 'ALT' user_id, '4:90:69:11' content  from dual
  4    )
  5  select
  6   replace(
  7    replace(
  8       replace(xmlagg(xmlelement("a",extractValue(value(t),'/a'))).getstringval(),'</a><a>',':')
  9       ,'<a>'
 10     )
 11   ,'</a>') new_content
 12  from tc_templs_user u
 13        ,table(xmlsequence( XMLType('<b><a>'||replace(content ,':','</a><a>')||'</a></b>').extract('/b/a'))) t
 14  where user_id='ALT'
 15    and extractValue(value(t),'/a') in ('67','73','69','81','121')
 16  ;
 
NEW_CONTENT
--------------------------------------------------------------------------------
67:69


Добавлено через 8 минут и 28 секунд
хотя таки да. тже огород. Но зато не унылый, что ни наесть творческий  smile 

Это сообщение отредактировал(а) Zloxa - 26.3.2010, 16:15


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
alt5000
  Дата 26.3.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.4.2006
Где: г. Выборг

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



Цитата(Zloxa @  26.3.2010,  16:08 Найти цитируемый пост)
использование балков без лимитов признак либо глупости либо самоуверенности.


А какие могут быть неблагоприятные последствия?

PM MAIL WWW   Вверх
Zloxa
Дата 26.3.2010, 16:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Цитата(alt5000 @  26.3.2010,  16:19 Найти цитируемый пост)
последствия

может статься так, что запрашиваемый набор даных засрет всю оперативу

Это сообщение отредактировал(а) Zloxa - 26.3.2010, 16:46


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
ToshaCh
Дата 26.3.2010, 17:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 555
Регистрация: 10.11.2005
Где: Москва, РФ

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



Цитата(alt5000 @  26.3.2010,  16:19 Найти цитируемый пост)
А какие могут быть неблагоприятные последствия?

Анальная кара от вашего dba! 

Данная операция это фактически загон напрямую в память всего результата работы курсора. А в базах данных объёмы могут быть весьма впечатляющими. Ты ведь не станешь работая на Си с файлом полностью читать его с диска, или станешь?

Это сообщение отредактировал(а) ToshaCh - 26.3.2010, 17:08


--------------------
Slackware 12.2 | Linux 2.6.27 | Fluxbox 1.1.1 | Wmii 3 | Opera 9.63 
--
Oracle это не только способ отмывания денег, но и вполне себе преличная база данных.
PM MAIL Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1015 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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