powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / типы в plpgsql и их преобразрвание
4 сообщений из 4, страница 1 из 1
типы в plpgsql и их преобразрвание
    #32915107
Fabrichenko Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с постгрк недолго работаю ... вот заметил странную странность вроде бы и типы в языке есть но както странно себя они ведут ... например

есть переменная типа test int2 := 0;

делаем следующее

test := 'jhxcvjkcv';

и никакого exception ничего ...

это так и должно быть??
----------------------------------
жизнь как пестня
...
Рейтинг: 0 / 0
типы в plpgsql и их преобразрвание
    #32915109
Fabrichenko Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никакого ecxeption и значение переменной = 'jhxcvjkcv'
-------------------------
жизнь как пестня
...
Рейтинг: 0 / 0
типы в plpgsql и их преобразрвание
    #32915761
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fabrichenko Viktorникакого ecxeption и значение переменной = 'jhxcvjkcv'
-------------------------
жизнь как пестня

странно :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
CREATE OR REPLACE FUNCTION public.test_vartype()
  RETURNS text AS
'DECLARE
 olid int4;
 sNotice text;
 sC text := \'::\';
BEGIN
sNotice :=\'некий текст\';

olid := 0;
RAISE NOTICE \'Oid here is %\',  olid ;
RAISE NOTICE  \' %\',  sNotice;
olid := \'некий текст\';
RAISE NOTICE \'Oid here is %\',  olid ;
RETURN sNotice;
END;'
  LANGUAGE 'plpgsql' IMMUTABLE;

Запрос успешно завершён без результата возврата за  125  мс.
-- Выполнение запроса:
SELECT test_vartype();
NOTICE:  Oid here is  0 
NOTICE:   некий текст
WARNING:  Error occurred while executing PL/pgSQL function test_vartype
WARNING:  line  11  at assignment

ERROR:  pg_atoi: error in "некий текст": can't parse "некий текст"


------ еще попытка
-- Выполнение запроса:
CREATE OR REPLACE FUNCTION public.test_vartype()
  RETURNS text AS
'DECLARE
 olid int4;
 sNotice text;
 sC text := \'::\';
BEGIN
sNotice :=\'некий текст\';

olid :=  0 ;
RAISE NOTICE \'Oid here is %\',  olid ;
RAISE NOTICE  \' %\',  sNotice;
olid := \'некий текст\';
--RAISE NOTICE \'Oid here is %\',  olid ;
RETURN sNotice;
END;'
  LANGUAGE 'plpgsql' IMMUTABLE;
Запрос успешно завершён без результата возврата за 141 мс.

-- Выполнение запроса:
SELECT test_vartype();
NOTICE:  Oid here is 0
NOTICE:   некий текст
WARNING:  Error occurred while executing PL/pgSQL function test_vartype
WARNING:  line 11 at assignment

ERROR:  pg_atoi: error in "некий текст": can't parse "некий текст"
наблюдаю ярко выраженный ERROR. т.е. транза откатится. Что я делаю не так?

ЗЫ: Но ф-я до эксепшена отработает, и если она сделает нечто не транзакционное (нотисы, наращивание счетчиков и т.п. - то это проявится в базе)
...
Рейтинг: 0 / 0
типы в plpgsql и их преобразрвание
    #32916963
Fabrichenko Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу прощения так и есть ...
я просто решил попользоваться EMS PGSQL Manager в нем есть дебагер который я подозреваю както сам себе там внутри по странным принципам проигрывает plpgsql и короче выдает результат ... странный результат ... еще у меня с массивами там были странные всякие странности вообщем недо искать альтернативу :-(
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / типы в plpgsql и их преобразрвание
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]