Вопросы по SQL и другие аспекты работы PostgreSQL

warning: Creating default object from empty value in /var/www/victor/web/pgdocs.ru/data/modules/taxonomy/taxonomy.pages.inc on line 33.
Здесь обсуждаются запросы на SQL в PostgreSQL. Оптимизация запросов, реализация, подходы и т.д.

Соединение с MSSQL SERVER

Возникла задача соединить postgesql 9.2 c MS SQL SERVER 2008, объемы данных необходимые для передачи около 100 тыс записей. Кто-нибудь сталкивался с данной задачей?
Оба сервера установлены на MS Windows Server 2008.
Пробовал установить dbi link(http://pgfoundry.org/projects/dbi-link) - выдает ошибки, если быть точнее информационные сообщения ms sql server трактует как ошибки.
ODBC Foreign Data wrapper on windows https://github.com/ZhengYang/odbc_fdw подходит только для postgre 9.1, а нужно 9.2

Динамические запросы в PostgreSQL

Изображение rean1mator

Здравствуйте!
Подскажите пожалуйста, где можно почитать про составление динамических запросов в PostgreSQL? (на русском языке). Использую PostgreSQL 9.2.3.
Шарился по интернету, но удалось найти только статьи для людей, уже знакомых с подобными запросами, а я никаких функций в самих БД ещё ни разу не писал.

Заранее благодарю!

функция lo_write как работать?

Ребят не подскажите кое что, никак не могу понять как использовать функцию int lo_write(PGconn *conn, int fd, const char *buf, size_t len);

Исходя из примера и документации получаю нечто на подобии вот этого

lo_write(conn, lobj_fd, buf, nbytes);
соответсвенно conn - задает действительное соединение с базой данных
lobj_fd - дескриптор открытого блоба
buf - определяет строку для записи
nbytes - длина строки для записи.

Так вот, подскажите как мне записать строки в Блоб, если я получил результат запроса в переменную res = Pqexec (conn, запрос);
соответсвенно тип PGresult *res;

Простейшая рекурсия plpgsql

Здравствуйте!
Являюсь новичком в изучении Postgresql. Попытался написать простую рекурсивную функцию, которая должна была по замыслу уменьшать переданное ей число за каждый рекурсивный ее вызов на единицу пока число не станет равно 0 и вернуть последнее значение модифицируемого числа (то есть вернуть 0).

CREATE or replace function temp (integer)
returns integer
as
$$
------------------------------------------------------------------------------
DECLARE
a integer;
glob integer;
------------------------------------------------------------------------------
BEGIN
a:=$1-1;

Как выбрать utf-строку с помощью pqxx

Добрый день.

Подскажите, пожалуйста, как с pqxx выбрать unicode-строку?

FIELD.as<std::wstring>()

не работает.

При попытке сделать

std::cout << pqxx::binarystring(f).DATA() << std::endl;

получаю std::bad_alloc.

Последнюю ошибку вызывает инициализация binarystring.

Протухает индекс

Редко, но крайне метко протухают индексы. В первый раз - на 9.1, недавно совсем на 9.2.

Выявляется тем, что неожиданно перестает работать запрос по индексированному полю.

импорт данных из xlsx файла

доброго времени суток всем! Есть ли возможность импортить такие данные стандартными стредствами постгреса? спасибо

Индекс gist / trgm на 2 поля как создать?

Изображение Dxel

Здравствуйте.

Есть 2 поля в таблице, типом text.
Нужно создать индекс типа:

CREATE INDEX index_blog_content_title ON test6 USING gist ((title,content) gist_trgm_ops);

Как такое реализовать?

Как работать с курсором

Добрый вечер.
Есть функция которая возвращает курсор

CREATE OR REPLACE FUNCTION test_cursor (VARCHAR(255), text) returns refcursor AS
$body$
DECLARE 
   _ref refcursor;
BEGIN
   OPEN _ref FOR SELECT id, disk, filmname, description, genrename FROM tmp_tbl_films WHERE filmname LIKE CONCAT('%',$1,'%');
 
   RETURN _ref;
END;
$body$
 
LANGUAGE 'plpgsql';

как его далее обработать чтоб получить его содержимое?

Команда COPY. Импорт большого файла

Всем доброго времени суток!

В общем есть большой файл для импорта в таблицу, около гига. Оставил выполнение запроса на ночь. Прихожу на утро, запрос еще выполняется. А этого уже больше 12 часов, все таки очень долго. Сам запрос совершенно обычный:

copy <schema.table> FROM '<filename>.txt' WITH delimiter AS '~';

Я понимаю что файл огромен, но все таки есть ли пути ускорения выполнения импорта? Спасибо всем заранее!

Собранный материал

Back to top

(С) Виктор Вислобоков, 2008-2023