Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Sequence 
V
    Опции темы
Се ля ви
Дата 1.11.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: нет
Всего: 127



Создаю новую схему, в ней несколько связанных таблиц.

Создаю САБЖ (нужен для автоинкремента).

Потом мне понадобилось из запроса возвращать ID записи. Пишу процедуру:
Код
FUNCTION CRM_CREATE_NEW_CLIENT
  (
    name         IN varchar2,
    short_name   IN varchar2,
    note         IN varchar2,
    jur_type     IN number,
    phone        IN varchar2,
    fax          IN varchar2,
    email        IN varchar2,
    web_site     IN varchar2,
    jur_addr     IN varchar2,
    real_addr    IN varchar2,
    lang_lang    IN varchar2,
    oper_oper_id IN number,
    cprs_cprs    IN varchar2,
    inn          IN varchar2)
  RETURN integer IS  id NUMBER(10,0);

BEGIN
    
    insert into CMS_CUSTOMER values (
        CRM_CUSTOMER_ID_SQ.nextval,
        name,
        short_name,
        SYSDATE,
        1,
        note,
        jur_type,
        phone,
        fax,
        email,
        web_site,
        jur_addr,
        real_addr,
        lang_lang,
        oper_oper_id,
        cprs_cprs,
        inn);
    
    id := CRM_CUSTOMER_ID_SQ.CURRVAL;
    
    commit;
    
    RETURN id;

END;


Ругается на "CRM_CUSTOMER_ID_SQ.CURRVAL" :
Цитата
(1): PLS-00357: Table,View Or Sequence reference 'CRM_CUSTOMER_ID_SQ.CURRVAL' not allowed in this context
(2): PL/SQL: Statement ignored


Главное, в запросе сиквенс срабатывает, т.е. видит контекст, не срабатывает именно при присвоении значения переменной... Помогите разобраться, pls. smile


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Sqlninja
Дата 1.11.2007, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

Репутация: 13
Всего: 13



Да нельзя в Pl/sql так обращаться к сиквенсу. Делай 
Код

select CRM_CUSTOMER_ID_SQ.CURRVAL into id from dual
.

Это сообщение отредактировал(а) Sqlninja - 1.11.2007, 18:23


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
Се ля ви
Дата 1.11.2007, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: нет
Всего: 127



Спасибо! smile)) Вроде, срослось. Маленькое дополнение:
Код
select CRM_CUSTOMER_ID_SQ.CURRVAL into id from dual;


Добавлено через 1 минуту и 4 секунды
а, ну я вижу ты итак поправил ;)


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
KaKTyCc
Дата 2.11.2007, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: 1
Всего: 1



если 11g, то можно в pl/sql 

Код

id := CRM_CUSTOMER_ID_SQ.CURRVAL



--------------------
Мой блог
PM MAIL WWW   Вверх
Се ля ви
Дата 2.11.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: нет
Всего: 127



10g


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0986 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.