Описание тега firebird-psql

Процедурный язык для базы данных Firebird. Используйте этот тег для вопросов, касающихся хранимых процедур Firebird, триггеров, блока выполнения или хранимых функций PSQL.
1 ответ

Помощь с хранимой процедурой Firebird SQL

У меня очень простая хранимая процедура: ALTER PROCEDURE SP_BALANCE_USD ( PER SMALLINT ) RETURNS ( ACCOUNT_NUMBER CHAR(21), AMOUNT NUMERIC(15, 4) ) AS BEGIN SELECT L.ACCOUNT_NUMBER, SUM(-(CURRROUND(L.DEBIT,2) - CURRROUND(L.CREDIT,2))) FROM LEDGER L …
24 ноя '19 в 11:58
1 ответ

Обработка исключений Firebird 2.5 в автономной транзакции

У меня падает производительность одной из хранимых процедур Firebird, и я не понимаю, почему. В упомянутом SP я нашел следующий код: declare v_dummy integer; ... in autonomous transaction do begin -- insert may fail, but that is not a problem becaus…
20 янв '20 в 00:25
1 ответ

Фиксация / откат Firebird 2.5 (с использованием автономной транзакции) в цикле

Мне нужно обрабатывать записи в цикле хранимой процедуры, например: create or alter procedure process_waiting_records as declare v_id type of column my_table.id; begin for select t.id from my_table t where (t.status = 'WAITING_TO_PROCESS') order by …
08 фев '20 в 13:21
0 ответов

Вставить нулевое значение

Я пытаюсь вставить значение двойной точности (ilosc_zlec) в таблицу (M_ZAMWLASNEPOZ). Сначала я использую оператор select, чтобы получить значение. После запуска этой части кода я вижу правильное значение в переменной ( 39). Затем я пытаюсь вставить…
0 ответов

Изменение типа данных с varchar на целое число

Я пытаюсь найти первый свободный номер (SYMBOL_ZAM) в таблице и добавить 1, чтобы сделать уникальным для моей новой записи. Сначала я выбираю последнее добавленное число в переменную varchar (OST_SZUK_NR), а затем я пытался сделать поле NOWY_SYMB_ZA…
12 фев '20 в 14:32
1 ответ

TIBScript и локальные переменные

Я работаю с Delphi 7 и Firebird 2.0. В своем приложении я использую компоненты TIBScript. Проблема возникает, когда я использую в скрипте локальные переменные. В некоторых случаях Firebird требует, чтобы перед именами локальных переменных ставилось …
23 июн '20 в 15:14
1 ответ

процедура return True или False

Мне нужна хранимая процедура в firebird 3.0, чтобы вернуть результат True, False или 1,0, чтобы проверить, существует ли этот человек или запись в базе данных. Если существует, процедура должна вернуть true, если не вернуть False, или вернуть 1, есл…
15 авг '20 в 23:25
1 ответ

При создании переменной PSQL возникает ошибка: "Использование GRANT OPTION для процедур не разрешено".

Мы используем диспетчер SQL для interbase-firebird, а также Firebird 3.0.5. Мы создаем процедуру, и она отлично работает. Однако с момента добавления переменной psql в процедуру мы получаем ошибку ниже. Когда мы удалим переменную, процедура может бы…
27 фев '20 в 12:41
1 ответ

Как вложить анонимные блоки с операторами объявления в Firebird?

В Firebird, DECLAREзаявления могут быть перечислены в начале EXECUTE BLOCKзаявление: EXECUTE BLOCK [(<inparams>)] [RETURNS (<outparams>)] AS [<declarations>] BEGIN [<PSQL statements>] END Внутри блока, не дальшеDECLAREвозможн…
12 мар '20 в 16:12
1 ответ

Устранение одиночной ошибки в хранимой процедуре

У меня есть следующая хранимая процедура в Firebird SQL: ALTER PROCEDURE SP_REPORT_USD ( PER SMALLINT ) RETURNS ( ACCOUNT_NUMBER CHAR(21), AMOUNT NUMERIC(15, 4) ) AS BEGIN SELECT L.ACCOUNT_NUMBER, SUM(CURRROUND(L.DEBIT,2)-CURRROUND(L.CREDIT,2)) FROM…
24 ноя '19 в 13:41
1 ответ

Как пропустить / продолжить оператор удаления, когда таблица не существует?

Я хочу написать блок выполнения, который я могу использовать для нескольких баз данных с аналогичной структурой, в некоторых нет одной или более таблиц. Я использую что-то вроде этого execute block as begin delete from table1; delete from table2; de…
13 июл '20 в 10:46
1 ответ

"Столбец не принадлежит указанной таблице" Почему?

Этот код должен удалить альбом, но я не знаю, почему он все еще не работает declare variable al_eliminare integer; begin select count(album.id) from album where id = :id_album into :al_eliminare; if(al_eliminare = 0) then delete from album where alb…
10 янв '20 в 12:38
1 ответ

Обновляется ли переменная курсора при обновлении строки?

В коде ниже (тело хранимой процедуры), обновляется ли значение поля курсора автоматически после ОБНОВЛЕНИЯ или нет? Если нет, достаточно ли снова команды «Закрыть / открыть»? Я не нашел никакого описания, которое включало бы это, это были только кур…
20 фев '21 в 20:10
0 ответов

Запуск SQL Server для Firebird

У меня есть триггер SQL Server, который я пытался преобразовать для Firebird, но, похоже, у меня с ним проблемы. Вот мой триггер SQL: CREATE TRIGGER [dbo].[IDSOFT_INTERV_UI] ON [MMAINT_SOCO_PROD].[dbo].[T_ZONES_LIBRES_UI] AFTER UPDATE AS BEGIN IF UP…
22 фев '21 в 08:49
2 ответа

Как получить сумму полей подробной таблицы в главной таблице с триггером обновления

В базе данных Firebird 3.0 есть основная таблица «factgad» и подробная таблица «recgad». factgad : factgad_k(пр_к) ... recgad : recgad_k(pr_k), factgad_k(fk) ... Когда я обновляю главную таблицу, мне нужно получить сумму записей таблицы подробностей…
21 фев '21 в 17:15
2 ответа

Переменное количество параметров в хранимой процедуре Firebird

У меня есть следующая хранимая процедура: ALTER PROCEDURE SP_STOCK_ANALYSIS ( MAIN_GROUP CHAR(6) ) RETURNS ( STOCK_CODE CHAR(21), STOCK_GROUP CHAR(6), DESCRIPTION CHAR(31), EXPENSE NUMERIC(15, 4) ) AS BEGIN FOR SELECT L.STOCK_CODE, INV.DESCRIPTION, …
18 фев '21 в 11:04
1 ответ

firebird выполняет объединение блоков

Есть ли способ выполнить объединение 2 наборов, где оба были выведены двумя разными командами блока выполнения? Структура наборов одинакова, но каждый из них содержит разные параметры, поэтому я не могу легко объединить оба в одной команде выполнени…
17 фев '21 в 19:35
1 ответ

Добавить новую строку для первой из той же группы

Я новичок в Firebird и нуждаюсь в вашей помощи. Я знаю, что задача Firebird не в том, чтобы сделать хороший отпечаток. У меня есть хранимая процедура со следующим сокращенным выводом: Я использую Firebird 2.5.8
26 апр '21 в 13:44
1 ответ

Несколько строк Firebird в синглтоне выберите Где нравится

Я пытаюсь получить несколько строк с похожим условием. EXECUTE BLOCK RETURNS (ID Varchar(128), SCRIPT BLOB SUB_TYPE TEXT) AS BEGIN FOR SELECT Col1.EID, Col1.Script FROM Col1 WHERE Col1.Script Like %test12% INTO :ID, :SCRIPT DO BEGIN SUSPEND; END END…
22 сен '21 в 11:48
0 ответов

Проблема параметра RDB$DB_KEY в хранимой процедуре

У меня проблема. Я пытаюсь передать данные RDB$DB_KEY в хранимую процедуру, но когда я открываю курсор, он говорит, что не может найти запись на основе параметра. Я не понимаю, почему курсор не может найти запись, если тип соответствия параметра RDB…
29 сен '21 в 16:19