Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2014, 07:31   #1
lexflax
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 74
Сообщение Не могу вызвать функцию

Доброго времени суток.
При вызове данной функции выдает ошибку
Код:
CREATE OR REPLACE FUNCTION groups_insert(_ngr character varying DEFAULT NULL::character varying)
  RETURNS void AS
$BODY$
DECLARE
  v_CGr INTEGER := NEXTVAL('groups_seq');
  v_NGr character varying(20) := _NGr;
BEGIN
  IF v_NGr IS NULL THEN
    v_NGr := 'Группа' || CAST(v_CGr AS character varying);
  END IF;
  INSERT INTO groups(CGr, NGr) VALUES (v_CGr, v_NGr);
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION groups_insert(character varying) OWNER TO postgres;
Вызов
Код:
groups_insert('МояГруппа');
Ошибка
Код:
ОШИБКА:  ошибка синтаксиса (примерное положение: "groups_insert")
LINE 1: groups_insert('МояГруппа');
        ^

********** Ошибка **********

ОШИБКА: ошибка синтаксиса (примерное положение: "groups_insert")
SQL state: 42601
В чем ошибка как исправить?
lexflax вне форума Ответить с цитированием
Старый 01.03.2014, 11:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нужно писать либо execute group_insert() либо select...from group_insert()
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.03.2014, 16:17   #3
lexflax
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 74
По умолчанию

пробовал так
execute groups_insert('МояГруппа');
ошибку выдает
Код:
ОШИБКА:  подготовленный оператор "groups_insert" не существует

********** Ошибка **********

ОШИБКА: подготовленный оператор "groups_insert" не существует
SQL state: 26000
пробывал так
Код:
SELECT groups_insert(
    'my grop'
);
Ошибка
Код:
ОШИБКА:  отношение "groups_seq" не существует
LINE 1: SELECT NEXTVAL('groups_seq')
                       ^
QUERY:  SELECT NEXTVAL('groups_seq')
CONTEXT:  PL/pgSQL function "groups_insert" line 4 при инициализации локальной переменной в блоке операторов

********** Ошибка **********
lexflax вне форума Ответить с цитированием
Старый 01.03.2014, 20:28   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
SELECT groups_insert(
'my grop'
);
Вообще-то
Код:
SELECT * from groups_insert('my grop');
Цитата:
подготовленный оператор "groups_insert" не существует
Хм... Это Postgre? Почитай какая там команда вызывает процедуры, может я в синтаксисе ошибся.
И проверь действительно ли такая процедура groups_insert() в БД существует.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.03.2014, 16:55   #5
lexflax
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 74
По умолчанию

выложил задание для которой была написанна процедура...
Проблема в том что нужно прописать отношение еще
Код:
CREATE SEQUENCE groups_seq
которое прописанно в процедуре...
а как именно его прописать я не знаю чтоб правильно работала процедура..
Код:
2
3
4
5
6
7
8
9
10
11
12
13
CREATE OR REPLACE FUNCTION groups_insert(_NGr CHARACTER VARYING DEFAULT NULL) RETURNS void AS
$$
DECLARE
  v_CGr INTEGER := NEXTVAL('groups_seq');
  v_NGr CHARACTER VARYING(20) := _NGr;
BEGIN
  IF v_NGr IS NULL THEN
    v_NGr := 'Группа' || CAST(v_CGr AS CHARACTER VARYING);
  END IF;
  INSERT INTO groups(CGr, NGr) VALUES (v_CGr, v_NGr);
END;
$$
LANGUAGE 'plpgsql' VOLATILE;
помогите пожалуйста...
Изображения
Тип файла: gif процедура.gif (14.7 Кб, 132 просмотров)
lexflax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать функцию.. Аделинкка Общие вопросы Delphi 10 21.12.2012 10:47
Не получается вызвать функцию! Ce4kok Общие вопросы Delphi 5 25.05.2011 22:27
Не могу правильно вызвать функцию md5 TwiX Общие вопросы C/C++ 3 18.03.2010 22:23
Не могу вызвать функцию (( NewKoder Общие вопросы C/C++ 4 11.12.2009 17:26
Как вызвать функцию? blackstersl Общие вопросы Delphi 10 07.06.2009 19:22