powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Динамический запрос в репорте!
7 сообщений из 7, страница 1 из 1
Динамический запрос в репорте!
    #36232068
Tsunami9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Помогите с такой проблеммой....
есть репорт в апексе, в нём прописан запрос.

SELECT column_poisk, ID, column2
FROM table1
WHERE CATSEARCH(column_poisk, :POISK, NULL)>0

... как видно из запроса он берёт из страницы (из итема poisk) и на основе этого выполняет запрос и рисует репорт....
а вот чаго мне надо....
мне надо чтобы запрос был динамический, т.е. чтобы наименование таблицы бралось тоже из функции какой-нить или из итема на странице.....
... я пробовал в настройках репорта поставить returning SQL Query и ещё там параметр один в generic columns и написать запрос, но не совсем получается....

declare
q varchar(1000);
tablename varchar(100);
begin
tablename:='table1';
q = 'SELECT column_poisk, ID, column2 FROM ||tablename||' WHERE CATSEARCH(column_poisk, '||:POISK||', NULL)>0';
return q;
end;

.... неполучается.... может запрос неправильно пишу, помогите кто знает... нужен вот примерно такой запросец чтоп выполнялся...
...
Рейтинг: 0 / 0
Динамический запрос в репорте!
    #36232553
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsunami9Здравствуйте!
Помогите с такой проблеммой....
есть репорт в апексе, в нём прописан запрос.

Код: plaintext
1.
2.
SELECT column_poisk, ID, column2
FROM table1
WHERE CATSEARCH(column_poisk, :POISK, NULL)> 0 

... как видно из запроса он берёт из страницы (из итема poisk) и на основе этого выполняет запрос и рисует репорт....
а вот чаго мне надо....
мне надо чтобы запрос был динамический, т.е. чтобы наименование таблицы бралось тоже из функции какой-нить или из итема на странице.....
... я пробовал в настройках репорта поставить returning SQL Query и ещё там параметр один в generic columns и написать запрос, но не совсем получается....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
declare
q varchar( 1000 );
tablename varchar( 100 );
begin
tablename:='table1';
q = 'SELECT column_poisk, ID, column2 FROM ||tablename||' WHERE CATSEARCH(column_poisk, '||:POISK||', NULL)> 0 ';
return q;
end;
.... неполучается.... может запрос неправильно пишу, помогите кто знает... нужен вот примерно такой запросец чтоп выполнялся...

Тут есть такой тег - SRC. С ним гораздо лучше видно, что не хватает одинарной кавычки перед ||tablename||.
...
Рейтинг: 0 / 0
Динамический запрос в репорте!
    #36234110
Tsunami9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да... за ковычку спасибо, но эт я просто писал быстро и забыл про неё.... вот
какбэ не в кавычке то дело.... Апекс ругается, говорит "ошибка деления на ноль"...
когда в репорт просто эскюэль загоняешь, то обращаться к полям (элементам) формы вполне можно... тобишь брать данные (значения) из переменных типа :P1_ITEM
а вот когда юзаешь returning SQL Query то этого зделать какбэ незя... может я не догоняю просто как? т.е. если жёстко прописать что таблица такая, параметр для поиска такой (через декларе или функцию использовать), то всё канает...
а если начинаешь обращаться к полям страницы (в частности к строке поиска :POISK то апекс нипускает.... бя....а очень нужно замутить чтоб в одном репорте динамически общараться к разным таблицам можнобылоб....
про SRC не понял кстати...
...
Рейтинг: 0 / 0
Динамический запрос в репорте!
    #36235200
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsunami9,

напишите, пожалуйста, исправленный вариант PL/SQL-блока. Даже с учётом пропущенной кавычки у Вас там ошибка - когда конкатенируете строку с переменной, не заворачиваете значение переменной в кавычки. Проще говоря:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare
  l_xxx varchar2( 3 ):='xxx';
begin
-- Вот что у Вас
  dbms_output.put_line('l_xxx='||l_xxx||';');
-- А вот то, что Вы хотите
  dbms_output.put_line('l_xxx='''||l_xxx||''';');
end;
...
Рейтинг: 0 / 0
Динамический запрос в репорте!
    #36238736
Tsunami9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да... спасибо!... разгадал загадку....!
...
Рейтинг: 0 / 0
Динамический запрос в репорте!
    #36238832
Tsunami9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати я про тройные кавычки забыл.... они тоже гимор причиняют когда о них забываешь :-)
...
Рейтинг: 0 / 0
Динамический запрос в репорте!
    #36243537
Berkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще я думал, что сам APEX предлагает юзать функцию, которая генерит запрос. Понимаю, несколько неудобно, что приходится лазить в 2 места, зато с кавычками проблем нет 8)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Динамический запрос в репорте!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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