powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос . Что использовать : массив или временную таблицу?
18 сообщений из 18, страница 1 из 1
Вопрос . Что использовать : массив или временную таблицу?
    #39687847
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, Уважаемые Гуру SQL!!!

Подскажите, пожалуйста, ответ на "ламерский" вопрос!!

Имеется скрипт на PL/SQL , используемый для тестирования некоторого функционала...

В зависимости от тестируемой операции заполняются различные параметры.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
BEGIN
....
SET_PARAMETER_OPERATION (ID_OPERATION,'SIZE','BIG');
SET_PARAMETER_OPERATION (ID_OPERATION,'COLOR','RED');
SET_PARAMETER_OPERATION (ID_OPERATION,'TYPE','TABLE');
...
END;




Состав параметров может быть разный..


Задача сделать скрипт универсальным... При установке параметров ..
По простому сделал так:
То есть добавляем или изменяем параметры в SELECT ....., а вызов SET_PARAMETER_OPERATION - в цикле..

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
begin

for x in (
  select 'SIZE' as PARAMETER, 'BIG' as VALUE from dual
  union
  select 'COLOR' as PARAMETER, 'RED' as VALUE from dual
  union
  select 'TYPE' as PARAMETER, 'TABLE' as VALUE from dual
 
  ) 
  
   
 
loop

DBMS_OUTPUT.put_line(x.PARAMETER||' '||x.VALUE);

SET_PARAMETER_OPERATION (ID_OPERATION,x.PARAMETER,x.VALUE);

end loop;

end;



Как можно сделать это более красиво???
С помощью коллекций или временных таблиц???
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39687851
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LFDY,

если параметров немного, то

строка, хмл, json ...

....
stax
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39687879
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Параметров немного...
Примерно от одного до 10..
json - очень интересный вариант...

Правда никогда с ним не работал ;-(

Уважаемый Stax !!
Не подскажете, как переделать скрипт выше под json ???
Ну чтобы практически обучиться сразу ;-)
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39687922
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LFDYНе подскажете, как переделать скрипт выше под json ???
Ну чтобы практически обучиться сразу ;-)

не подскажу, тоже учусь

я делал через строку, с разделителями
но тут основная проблема длина строки, я так понимаю вызыватся будет из ос оболочки

.....
stax
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39687939
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL/SQL DEVELOPER
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688166
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГУРУ,ПОМОГИТЕ, ПОЖАЛУЙСТА!!!
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688175
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бы сказал SY, It depends.
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688220
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
set serveroutput on;
Begin
    apex_json.initialize_clob_output;
    apex_json.open_object; 
    apex_json.write('SIZE', 'BIG');
    apex_json.write('COLOR', 'RED');
    apex_json.write('TYPE', 'TABLE');
    apex_json.close_object;
    
    apex_json.parse(apex_json.get_clob_output);
    for a in 1..apex_json.get_count(p_path => '.') loop
        dbms_output.put_line(apex_json.get_members(p_path=>'.')(a));
        dbms_output.put_line(apex_json.get_varchar2(p_path =>apex_json.get_members(p_path=>'.')(a), p0 => a ));
        SET_PARAMETER_OPERATION (ID_OPERATION,apex_json.get_members(p_path=>'.')(a), apex_json.get_varchar2(p_path =>apex_json.get_members(p_path=>'.')(a), p0 => a ));
    end loop;
    apex_json.free_output;
End;
/    
    
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688244
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel, СПАСИБО!!
Напрямую выполнить такое не дает:
Куча ошибок

ORA-06550 ...identifer APEX_JSON ******************************* must be declared
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688247
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LFDYДобрый день, Уважаемые Гуру SQL!!!

Подскажите, пожалуйста, ответ на "ламерский" вопрос!!

Имеется скрипт на PL/SQL , используемый для тестирования некоторого функционала...

В зависимости от тестируемой операции заполняются различные параметры.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
BEGIN
....
SET_PARAMETER_OPERATION (ID_OPERATION,'SIZE','BIG');
SET_PARAMETER_OPERATION (ID_OPERATION,'COLOR','RED');
SET_PARAMETER_OPERATION (ID_OPERATION,'TYPE','TABLE');
...
END;



Неужели это настолько хужечитаемо, чем JSON ?

Ну или создать обычную таблицу: operation_id, param_1, param_2...
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688254
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LFDYblkangel, СПАСИБО!!
Напрямую выполнить такое не дает:
Куча ошибок

ORA-06550 ...identifer APEX_JSON ******************************* must be declared

Если у Вас oracle 11g, надо установить Apex 5.0 и выше.
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688261
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare
   key_len constant pls_integer := 100;
   val_len constant pls_integer := 250;
   type params_list is table of varchar2(val_len) index by varchar2(key_len);
   params params_list;
   cnt number;
begin
   params := params_list('prm1'=>'X', 'prm2'=>to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'));
   params('prm3') := to_char(sqrt(2.25), 'tm', 'nls_numeric_characters=''.,''');
   select count(*) into cnt from dual where params('prm1') = dummy;
end;
/
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688282
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровLFDYДобрый день, Уважаемые Гуру SQL!!!

Подскажите, пожалуйста, ответ на "ламерский" вопрос!!

Имеется скрипт на PL/SQL , используемый для тестирования некоторого функционала...

В зависимости от тестируемой операции заполняются различные параметры.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
BEGIN
....
SET_PARAMETER_OPERATION (ID_OPERATION,'SIZE','BIG');
SET_PARAMETER_OPERATION (ID_OPERATION,'COLOR','RED');
SET_PARAMETER_OPERATION (ID_OPERATION,'TYPE','TABLE');
...
END;



Неужели это настолько хужечитаемо, чем JSON ?

Ну или создать обычную таблицу: operation_id, param_1, param_2...

мож и не хуже, я предполагал что инфа передается как параметр

Код: plsql
1.
2.
3.
4.
5.
declare
 v_str varchar2(32000) :='&1'; --:par
 ...
begin
 ...



sqlplus u/p set_param.sql 'SIZE:BIG,COLOR:RED,TYPE:TABLE'

....
stax
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688297
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

'prm1'=>'X' из 18-ки?

....
stax
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688498
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangelLFDYblkangel, СПАСИБО!!
Напрямую выполнить такое не дает:
Куча ошибок

ORA-06550 ...identifer APEX_JSON ******************************* must be declared

Если у Вас oracle 11g, надо установить Apex 5.0 и выше.

Oracle 12c
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688502
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровLFDYДобрый день, Уважаемые Гуру SQL!!!

Подскажите, пожалуйста, ответ на "ламерский" вопрос!!

Имеется скрипт на PL/SQL , используемый для тестирования некоторого функционала...

В зависимости от тестируемой операции заполняются различные параметры.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
BEGIN
....
SET_PARAMETER_OPERATION (ID_OPERATION,'SIZE','BIG');
SET_PARAMETER_OPERATION (ID_OPERATION,'COLOR','RED');
SET_PARAMETER_OPERATION (ID_OPERATION,'TYPE','TABLE');
...
END;



Неужели это настолько хужечитаемо, чем JSON ?

Ну или создать обычную таблицу: operation_id, param_1, param_2...

Это читается хорошо, согласен ;-))
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39688557
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LFDYblkangelпропущено...


Если у Вас oracle 11g, надо установить Apex 5.0 и выше.

Oracle 12c

Посмотрел доку, в 12с Апекс 4.2.6, обновите апекс.
...
Рейтинг: 0 / 0
Вопрос . Что использовать : массив или временную таблицу?
    #39689210
LFDY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,
Это, к сожалению, на данный момент не реально...
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос . Что использовать : массив или временную таблицу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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