Вопросы по 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. Оптимизация запросов, реализация, подходы и т.д.

Решено: Принудительно преобразовать строку в UTF8

Получаю целиком в строку содержимое текстового файла. Эти файлы далеко не всегда созданы в utf8, возможны другие кодировки (в том числе арабы, китайцы и прочие). Какая кодировка в конкретном случае я не знаю. Мне надо записать эту переменную целиком в postgresql в поле text, который в формате utf8. Если в файле есть хоть один символ не utf8 - то postgres выводит исключение и не записывает запись. Так и пишет, такой то символ - не utf8. Нужен текст, так как потом буду по тексту искать фразы. Вопросы:
1. Как перед записью в базу преобразовать переменную в utf8, а затем вернуть как она была?

Как реализовать функцию:?

Здравствуйте у меня вот такое задание: Вы работаете в нотариальной конторе. Вашей задачей является отслеживание финансовой стороны работы компании. Деятельность Вашей нотариальной конторы организована следующим образом: Ваша фирма готова предоставить клиенту определённый комплекс услуг. Для наведения порядка Вы формализовали эти услуги, составив их список с описанием каждой услуги. При обращении к Вам клиента, его стандартные данные (название, вид деятельности, адрес, телефон) фиксируются в базе данных. По каждому факту оказания услуги клиенту составляется документ.

Как востановить pg из файла /var/lib/pgsql?

Операционка умерла, но с помощью загрузочного диска я скопировал базу данных.
Однако востановить их оказалось сложнее чем я думал.
Что я уже делал.
Я заменял /var/lib/pgsql/9.4/data/base
Наделял её правами chown -R postgres:postgres /var/lib/pgsql/9.4/data/base

psql запускается, базы новые не видит (

Сохранение bytea на диск без хедера.

Всем привет.

У меня в базе postgres хранится несколько небольших wav-файлов в формате bytea. Мне нужно триггером их выгружать в папку на сервере. Выгружаю:

COPY (SELECT "FileData" FROM "WavFiles" WHERE "DataCRC" = 5000) TO E'C:\\...\\newfile.wav' binary

Файл выгружается, но размером больше на 27 байт. В файл пишется хедер типа PGCOPY\n\377\r\n\0 и возможно что-то еще, я в postgres ноль.

Подскажите, как выгрузить файл из базы как он есть, без хедера?

Спасибо заранее.

UPDATE + LIMIT

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

Подскажите пожалуйста по поводу данного кода, по логике вещей ряд должен обновить 100 записей:

UPDATE voip_nums
      SET provider = 'AwesomeProvider'
      WHERE ... ???
      FROM (SELECT provider
                  FROM voip_nums 
                    WHERE provider = 'CurrentProvider'
                     AND nid IN (SELECT nid

SELECT * выполняется а UPDATE нет!

Доброе время суток!
есть два запроса:
SELECT *
from inv_form im, temp_tbl2 t2
where im.producer_id = t2.id_new and
form_type_id IN (SELECT form_type_id FROM inv_form iv WHERE iv.producer_id = id_new)
and holding_id IN (SELECT holding_id FROM inv_form iv WHERE iv.producer_id = id_new)

и
UPDATE inv_form_param_value set form_id = im.id
from inv_form im, temp_tbl2 t2
where im.producer_id = t2.id_new and
form_type_id IN (SELECT form_type_id FROM inv_form iv WHERE iv.producer_id = id_new)

Упрощение запроса

Добрый день!

Ниже приведенный запрос не обновляется в excell, т.к. не хватает памяти а если и хвататет то слишком долго происходит обновление. Как можно упростить текущий запрос? буду признателен за помощь

SELECT
case
when orders.operator_comment LIKE '%#dostavleno%' THEN 'ДОСТАВЛЕН ТО'
when warehouse1.name = warehouse.name THEN 'ЛЕЖИТ НА ТТ'
ELSE 'НЕ ДОСТАВЛЕН'
end,
case when orders.delivery_method=1 or orders.delivery_method=4 THEN ''
when orders.delivery_method=2 THEN warehouse.name
ELSE 'Кто тут у нас?' end,
case

Запрос для выборки.

Добрый день.
Имеется самописная биллинг система, которая досталась мне по наследству. И сейчас требуется сделать выборку для 1С, из этого биллинга.

Начну с данных которые имеются.

[collapse]

TABLE clife - основная таблица описывающая услуги предоставляемые абоненту, варианты оплаты итд.
cid          int4    --  Лицевой счет
dton         date    -- это первый день, когда запись вступила в силу (информация содержащаяся в этой записи стала актуальной)
dtoff        date    -- последний день "жизни" записи

Определить, какие поля были указаны при запросе INSERT

Здравствуйте. Задача состоит в следующем: необходимо, при внесении записи в одну из таблиц t_1, t_2, ... , t_i, ... (t_i -- требуемая таблица) проверить, содержится ли запись со значением ID вносимой записи в остальных (t_1, t2, ... , t_i-1, t_i+1, ...) таблицах, и, если содержится, заменить значения полей вносимой записи соответствующими значениями полей записи из той таблицы, которой соответствует ID вносимой записи. Причём те поля, значения для которых были указаны в запросе INSERT для таблицы t_i, не изменять (т.е. внести измнения ).

Использование функции to_tsvector

Если я использую следующий запрос :

SELECT to_tsvector(
$$
Сегодня, 18 ноября, на 381-м заседании Совета Федерации в рамках правительственного часа глава Министерства промышленности и торговли РФ Денис Мантуров выступил с докладом о реализации программ импортозамещения в отраслях промышленности. Также министр представил сенаторам подготовленные ведомством новые механизмы, направленные на развитие промышленного потенциала регионов. 

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

Back to top

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