SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.03.2010 10:23:26

Наталья
Участник
Зарегистрирован: 23.03.2010
Сообщений: 12

Почему возникает ошибка????

Я пытаюсь в хранимой процедуре создать для дальнейшей работы 2 временные таблицы:

CREATE PROCEDURE OBOROT_SO (In NumTmc    decimal(11),    /* ном.номер*/
                                In Price        float,        /* учет.цена*/   
                    In    Uperiod    int)                /* учет.период*/
BEGIN
   CREATE TEMPORARY TABLE TMP_table11 (DatD     int,Kol     float, KolMes    smallint);   
   CREATE TEMPORARY TABLE TMP_table12 (DatD2 int,Kol2 float, KolMes2    smallint);   
END


Создание любой из этих таблиц по одиночке возможно, а 2 не создает. В чем причина???

Неактивен

 

#2 23.03.2010 16:07:42

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Почему возникает ошибка????

В чем заключается «не создает»? Какие ошибки пишет? Учтите, что таблицы
доступны и после работы процедуры — возможно, надо добавить какие-то
DROP TABLE IF EXISTS.

Неактивен

 

#3 24.03.2010 09:57:48

Наталья
Участник
Зарегистрирован: 23.03.2010
Сообщений: 12

Re: Почему возникает ошибка????

Возникает следующая ошибка:


Прикрепленные файлы:
Attachment Icon Ошибка.bmp, Размер: 743,094 байт, Скачано: 869

Неактивен

 

#4 24.03.2010 10:00:15

Наталья
Участник
Зарегистрирован: 23.03.2010
Сообщений: 12

Re: Почему возникает ошибка????

Данные таблицы нужны для дальнейшей работы, поэтому их удаление пока невозможно. Возможно ли чтоб существовали одновременно 2 временные таблицы?

Неактивен

 

#5 24.03.2010 11:02:18

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Почему возникает ошибка????

Приведенная ошибка возникает из-за того, что вы не переопределяете delimiter (разделитель команд) и в результате команда завершается на 5ой строке. Отсюда и ошибка.

DELIMITER $$
CREATE PROCEDURE OBOROT_SO (In NumTmc    decimal(11),    /* ном.номер*/
                                In Price        float,        /* учет.цена*/  
                    In    Uperiod    int)                /* учет.период*/
BEGIN
   CREATE TEMPORARY TABLE TMP_table11 (DatD     int,Kol     float, KolMes    smallint);  
   CREATE TEMPORARY TABLE TMP_table12 (DatD2 int,Kol2 float, KolMes2    smallint);  
END$$

Неактивен

 

#6 24.03.2010 15:05:09

Наталья
Участник
Зарегистрирован: 23.03.2010
Сообщений: 12

Re: Почему возникает ошибка????

ОГРОМНОЕ спасибо за подсказку!!!! Все получилось!!!! Урррррррааааааааааааа!!!!
Буду продолжать отладку дальше.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson