Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблоны строк 
V
    Опции темы
pythonwin
Дата 22.4.2009, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Всем привет!
подскажите, пожалуйста, как можно организовать в psql или plpgsql шаблоны строк и как сделать чтобы в текст передавались параметры заменяя значения?
например в таблице есть текстовое поле и в определенной запирси этой таблицы в этом поле хранится текст в котором есть перечисление параметров и если этот текст и параметры передать в какую-то функцию, то она вернёт строку, в которой названия или перечисление параметров заменится на их значения. в python например это делается так:
Код

st = "my text = %(my_text)s"
s1 = st%{'my_text':'123_098'}

или
Код

st = "my text = %s"
s1 = st%'123_098'

PM WWW GTalk Jabber   Вверх
sir_nuf_nuf
Дата 22.4.2009, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 1
Всего: 31



Вы сначала придумайте как такую конструкцию в рамках SQL использовать ?
Как  (в виде чего) передавать переменное количество переменных.

Скорее всего - встроенной функции нет. (и это правильно)

Но если вам оч. надо - можно дописать свою. Раз вы фанат питона - то на питоне =)

http://www.postgresql.org/docs/8.2/interactive/plpython.html


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
pythonwin
Дата 22.4.2009, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(sir_nuf_nuf @  22.4.2009,  13:10 Найти цитируемый пост)
Но если вам оч. надо - можно дописать свою. Раз вы фанат питона - то на питоне =)

написал на plpython
Код

 CREATE PROCEDURAL LANGUAGE 'plpythonu'
  HANDLER plpython_call_handler;

CREATE OR REPLACE FUNCTION my1(int) RETURNS text
    AS $BODY$
    rv = plpy.execute("SELECT sql_code FROM queries WHERE name = 'select1'")
    sql_query = rv[0]['sql_code']%{'var1':args[0]}
    rv = plpy.execute(sql_query)
    return dict(rv[0]])
    $BODY$
    LANGUAGE plpythonu;
select my1(1);

psql 8.1.15
OS = debian etch/lenny
PM WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.0765 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.