Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
16.10.2003, 13:46
|
|||
---|---|---|---|
|
|||
имя таблицы как параметр для PL/pgSQL |
|||
#18+
Можно ли в Postgres в PL/pgSQL в качестве параметра передавать имя таблицы ? В хранимой процедуре должен быть прописан запрос, в котором имя таблицы заранее неизвестно, а передаётся функции в качестве параметра. Я пробовал так, но Postgres ругается: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.10.2003, 15:56
|
|||
---|---|---|---|
|
|||
имя таблицы как параметр для PL/pgSQL |
|||
#18+
нет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.10.2003, 16:00
|
|||
---|---|---|---|
|
|||
имя таблицы как параметр для PL/pgSQL |
|||
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.10.2003, 16:44
|
|||
---|---|---|---|
имя таблицы как параметр для PL/pgSQL |
|||
#18+
2 Sad Spirit Нет так тоже не получится! Почти правильно так : create or replace function myfunc(text) returns int4 as ' declare tablename alias for $1; DECLARE tmprec RECORD; declare res1 int4; begin execute ''select count(*) as cnt into tmprec from '' || quote_ident(tablen res1 :=tmprec.cnt; return(res1);--tmp_record.cnt end; 'language 'plpgsql' Но почти- несчитается потому что почти это тоже ошибка 8)) Смотрите сами : myfunc1 - вариант предложенный Sad Spirit myfunc - приведенный в этом посте. avalon|R1>psql -q -c "select myfunc1('classes') " tests WARNING: Error occurred while executing PL/pgSQL function myfunc1 WARNING: line 9 at assignment ERROR: Type "execute" does not exist --------------------------------------------------------------------------------------------------------- avalon|R1>psql -q -c "select myfunc('classes') " tests WARNING: Error occurred while executing PL/pgSQL function myfunc WARNING: line 5 at execute statement ERROR: EXECUTE of SELECT ... INTO is not implemented yet Кабы этот чертов форум так не глючил ..... А вообще в доке написано The results from SELECT queries are discarded by EXECUTE, and SELECT INTO is not currently supported within EXECUTE. So, the only way to extract a result from a dynamically-created SELECT is to use the FOR-IN-EXECUTE form described later. Те придется считать записи в цикле FOR .... что тоже не ахти. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/search_topic.php?author=%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC-%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 443ms |
total: | 610ms |
0 / 0 |