|
|
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
хочу функцию изменения search_path типа: Код: sql 1. 2. 3. 4. 5. 6. 7. тут проблема с соответствием типов, как можно решить задачку? Есть функция start в которой и будет запускаться sp(схема). Есть ли возможность изменить search_path только на время выполнения start без лишних телодвижений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 09:20 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
sagengu, заворачивайте "скрипт" в динамичный эскуель. т.е. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 09:31 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
Lonepsycho, ну да, допустил синтакс ерор. думаю исправите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 09:33 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
sagengu. Есть ли возможность изменить search_path только на время выполнения start без лишних телодвижений? Разумеется. Для этого нужно прочитать RTFM . Там же есть пример с выставлением search_path для процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 09:49 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
ursidosagengu. Есть ли возможность изменить search_path только на время выполнения start без лишних телодвижений? Разумеется. Для этого нужно прочитать RTFM . Там же есть пример с выставлением search_path для процедуры. это будет работать только если путь поиска не динамичен. судя по приведённому примеру кода, путь меняестя (может менятся) с каждым запуском. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 09:55 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
Lonepsycho, исправил спасибо. Код: sql 1. но как это все работает не могу понять. объясните пожалуйста. зачем тут concat и откуда вообще и что такое $qry$ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:03 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
Lonepsycho, Что мешает использовать SET search_path в явном виде без дополнительных оберток? То есть в сессии выполнили SET search_path , затем какие-то запросы, затем что-то еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:09 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
ursido, к Вам вопрос. как $1 = text подставить в качестве схемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:11 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
sagengu, concat это просто для сборки строки т.е. аналог Код: sql 1. $$ или $named$ аналог кавычек. т.е. можно и так Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:19 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
sagengu, Нужно заморачиваться с динамическим запросом. Поэтому я скажу: "Никак". Предлагаю рассмотреть вариант, когда сперва выполняется установка пути поиска в явном виде, затем выполнение запросов. Все это можно сделать с клиента в рамках одной сессии. То есть в вызывающей части пишете в явном виде: SET search_path = <text>; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:23 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
sagengu, да, можно ещё посмотреть в сторону set_config(setting_name, new_value, is_local) , т.е. должно получится что то на подобии этого Код: sql 1. 2. 3. 4. 5. 6. 7. но сам лично не использовал. так что незнаю точно какие сайд-ефекты будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:32 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
если вдруг каким-то образом search_path выглядит следующим образом "$user", system, system могут ли возникнуть какие-то проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:32 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
sagengu, насколько я наблюдал, нет. да и теоретически недолжно. время поиска реляции может быть дольше, а так проблем не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:42 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
Lonepsycho, Использовал при других обстоятельствах. Работает. В данном случае будет побочный эффект: установленный search_path будет сохраняться до конца транзакции. То есть следующая команда в транзакции будет работать с заранее неизвестным search_path (то есть случайным). Это хорошая заявка на победу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:43 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
когда искал информацию находил такой вариант Код: sql 1. что означает local? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 11:46 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 12:04 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 12:20 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
sagenguхочу функцию изменения search_path Эта функция называется set_config() sagenguЕсть ли возможность изменить search_path только на время выполнения start без лишних телодвижений? Есть: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 13:56 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
Павел Лузановsagenguхочу функцию изменения search_path Эта функция называется set_config() sagenguЕсть ли возможность изменить search_path только на время выполнения start без лишних телодвижений? Есть: Код: plsql 1. мне необходима эта функция что бы установить схему в которой лежит функция или таблица. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. как победить ALTER DATABASE current_database() SET search_path TO "$user", system; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 16:09 |
|
||
|
функция для изменения search_path
|
|||
|---|---|---|---|
|
#18+
sagenguкак победить ALTER DATABASE current_database() SET search_path TO "$user", system; Нельзя в этом месте функцию использовать, вот и ругается. Какой инструмент для запуска скрипта с этими командами? Если psql, то можно: ALTER DATABASE :DBNAME SET search_path TO "$user", system; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 22:38 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39106380&tid=1997623]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
198ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 567ms |

| 0 / 0 |
