Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
выборка с условием вхождения id в генерируемый массив
|
|||
|---|---|---|---|
|
#18+
PostgreSQL 7.4 Задача следующая - из таблицы привилегий нужно выбрать записи для ролей, доступных конкретному юзеру. Для этого первым запросом я хочу сформировать массив с доступными ролями (здесь все ок), а вторым - выбрать все доступные привилегии для этих ролей (а вот здесь проблема). priv_ins text[]; user_ins integer; roles integer[]; counter integer :=0; record1 record; record2 record; BEGIN priv_ins := $1; user_ins := $2; -- формирую массив и текстовый эквивалент test := ''; FOR record1 IN SELECT * FROM user_roles WHERE "user"=user_ins LOOP counter := counter +1; roles[counter] := record1.role; IF test='' THEN test = cast(record1.role as text); ELSE test := test || ',' || cast(record1.role as text); END IF; END LOOP; -- массив сформирован, эта часть работает нормально counter := 0; FOR record2 IN SELECT * FROM priv WHERE role_user IN (test) LOOP -- возвращает 0, хотя записи есть --FOR record2 IN SELECT * FROM priv WHERE role_user IN (roles) LOOP -- ругается на несоответствие типов counter :=counter+1; END LOOP; return counter; END; подскажите правильный синтаксис пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2007, 12:20 |
|
||
|
выборка с условием вхождения id в генерируемый массив
|
|||
|---|---|---|---|
|
#18+
а зачем так сложно? вроде задачка вообще на один запрос: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2007, 13:38 |
|
||
|
выборка с условием вхождения id в генерируемый массив
|
|||
|---|---|---|---|
|
#18+
не спорю, в данном случае можно и так дело в том, что на основании этой выборки будут сформирован массив id являющихся parent-ами для след выборки структура priv id parent name role_user // >0 - role <0 -user value 1. выбираю все роли для юзера 2. выбираю все значения записи для юзера и его ролей, где parent isnull 3. если эта выборка не вносит ясность (по ней нельзя определить есть привилегия или нет) - идет след выбока у которой parent находится в массиве id текущей выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2007, 14:02 |
|
||
|
выборка с условием вхождения id в генерируемый массив
|
|||
|---|---|---|---|
|
#18+
крайне огорчает то, что среди здесь я выбора из массива не вижу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2007, 14:04 |
|
||
|
выборка с условием вхождения id в генерируемый массив
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2007, 14:24 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=298&tid=2005476]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 418ms |

| 0 / 0 |
