Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / типы в plpgsql и их преобразрвание / 4 сообщений из 4, страница 1 из 1
14.02.2005, 18:57
    #32915107
Fabrichenko Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
типы в plpgsql и их преобразрвание
Я с постгрк недолго работаю ... вот заметил странную странность вроде бы и типы в языке есть но както странно себя они ведут ... например

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

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

test := 'jhxcvjkcv';

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

это так и должно быть??
----------------------------------
жизнь как пестня
...
Рейтинг: 0 / 0
14.02.2005, 18:58
    #32915109
Fabrichenko Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
типы в plpgsql и их преобразрвание
никакого ecxeption и значение переменной = 'jhxcvjkcv'
-------------------------
жизнь как пестня
...
Рейтинг: 0 / 0
15.02.2005, 10:34
    #32915761
assa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
типы в plpgsql и их преобразрвание
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
15.02.2005, 16:31
    #32916963
Fabrichenko Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
типы в plpgsql и их преобразрвание
прошу прощения так и есть ...
я просто решил попользоваться EMS PGSQL Manager в нем есть дебагер который я подозреваю както сам себе там внутри по странным принципам проигрывает plpgsql и короче выдает результат ... странный результат ... еще у меня с массивами там были странные всякие странности вообщем недо искать альтернативу :-(
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / типы в plpgsql и их преобразрвание / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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