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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2011, 16:51   #1
MrBobyara
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 28
По умолчанию invalid number

Скажите в чем моя ошибка, выдает ошибку ora - 01722 invalid number

Код:
create or replace procedure renting
(
ipass         in char,
inumber       in char,
startd        in char,
finishd       in char,
lease         in char

)

is
pclient_id   client.id%TYPE;
pcar_id      car.id%TYPE;
pprice       int;



begin

select rent_price*(trunc(finishd) - trunc(startd)) into pprice from car where state_number = inumber;
select id into pclient_id from client where pass_num = ipass;
select id into pcar_id from car where state_number = inumber;

insert into rent (number_rent_sheet, rent_date, rent_term, lease_term, car_id, client_id, price) 
values 
(nrs.nextval, startd, finishd, lease, pcar_id, pclient_id, pprice);

end;
Ругается на эту строку select rent_price*(trunc(finishd) - trunc(startd)) into pprice from car where state_number = inumber;
MrBobyara вне форума Ответить с цитированием
Старый 15.02.2011, 21:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
inumber       in char,
...
.... where state_number = inumber;
1) проверяйте, какого типа поле state_number в таблице pprice (подозреваю, что number)

2) проверяйте, что передаётся в хранимую процедуру вторым параметром (это где inumber). И, кстати, почему оно CHAR ?!

3) если не разобрались (пункты 1 и 2 не помогли) и там действительно цифра передаётся, и действительно в виде символа,
тогда попробуйте сделать в запросе ЯВНОЕ приведение типа.
как-то так:
Код:
.....where state_number =  to_number( inumber );
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.02.2011, 22:21   #3
MrBobyara
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 28
По умолчанию

state_number , берется из таблицы car его тип varchar(8) так как оно содержит и буквы и числа.
сократил ради интереса до такого вида
Код:
select trunc(finishd) - trunc(startd) into pprice from dual;
все равно выдает invalid number.
Работает только когда вообще убираю весь этот селект.

если поможет: ввожу вот это
exec renting('418', 'AX2887BX', to_date('01.01.2010', 'dd.mm.yyyy'), to_date('10.01.2010', 'dd.mm.yyyy'), 'tyt komentariy');

Последний раз редактировалось MrBobyara; 15.02.2011 в 22:23.
MrBobyara вне форума Ответить с цитированием
Старый 16.02.2011, 09:16   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну и правильно выдаёт
у Вас же поля startd и finishd - СТРОКОВЫЕ! для них операция trunc не определена!

сделайте так:
Код:
create or replace procedure renting
(
ipass         in char,
inumber       in char,
startd        in Date,
finishd       in Date,
lease         in char
)

p.s. кстати, trunc() для полей с датой имеет смысл только в случае, если там может быть составляющая временная (часы, минуты, секунды...). В Вашем случае (если Вы используете "чистую" дату в этой операции смысла нет! Хотя, с другой стороны, перестраховаться не помешает
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.02.2011, 04:49   #5
ladymybizwin
Новичок
Джуниор
 
Аватар для ladymybizwin
 
Регистрация: 15.12.2010
Сообщений: 1
По умолчанию invalid number

Хочу поиграть на ГОЛе в обычных генераловлицензионные, но когда жму create account появляется таблица регионов, а потом пишет: Serial number is invalid.Please try another. Пробовал менять серийник CDKeyFixer - то же самое. В zero hour все нормально. Подскажите в чем проблема?
ladymybizwin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
random number<<is the code true? Alexander1205 Общие вопросы C/C++ 1 26.01.2011 00:11
create a number Alexander1205 Общие вопросы C/C++ 1 22.01.2011 00:58
Number of elements differ from declaration Alex Cones Общие вопросы Delphi 4 28.01.2010 20:49
WinApiEx - стандарт Number 1 Izhic Win Api 2 27.04.2009 16:40
Page Number DarksideNv Microsoft Office Excel 6 15.10.2008 07:05