Ошибка неверное значение для целого числа

Собственно запрос

Select t_id,end_data, 
case when tbl_city.NAZV is null then tc_name else tc_name || ', ' || NAZV end || ', ' || address as NAZV, 
case status when 0 then 'Не подтверждена' when 1 then 'Подтверждена' when 2 then 'В работе' when 3 then 'На проверке' else 'Закрыта' end as st,
case when cell_ticket is null then 'Не назначено' else cell_ticket end as st,
case when cell_ticket is null then 'Не указано' else cell_ticket end as cell
from us_ticket.ticket
join us_ticket.tbl_countryside on ticket.city_id = tbl_countryside.tc_id
left join us_ticket.tbl_city on tbl_countryside.citycode = tbl_city.city_id;

Ошибка на строке

case when cell_ticket is null then 'Не указано' else cell_ticket end as cell

Как только ее убираю все начинает работать. Ругается на эту часть then "Не указано"

Текст ошибки

ОШИБКА: неверное значение для целого числа: «Не указано»
СТРОКА 1: …та’ end as st, case when cell_ticket is null then ‘Не указан…

Я уже искал и пытался исправить ошибку, но я не мог этого сделать. В чем проблема внутри моего кода? Я вставлю код и ошибку ниже. Как я понимаю, это о типе данных. Если я сделаю какие-либо грамматические ошибки, извините за это.

$sql = <<<SQL
INSERT INTO karakter (KullanıcıAdı,uid,Isim,Cinsiyet,Irk,Boy,Kilo,Gün,Ay,Yıl,Güç,Bünye,Dayanıklılık,Çeviklik,Karizma,Zeka,İrade,Odaklanma,Ustalık,Ziraat,İşçilik,Aşçılık,Botanik,Balıkçılık,Dericilik,Marangozluk,Hekimlik,VahşiYaşam,DuvarUstalığı,Camcılık,Demircilik,Avcılık,Şarapçılık,Çekilme,Kalkan,Hançer,Kılıç,Balta,Gürz,Mızrak,Yay,Arbalet)
VALUES ("$user","$uid","$isim","$cinsiyet","$irk","$boy","$kilo","$gun","$ay","$yil","$Güç","$Bünye","$Dayanıklılık","$Çeviklik","$Karizma","$Zeka","$İrade","$Odaklanma","$Ustalık",'$Ziraat',"$İşçilik","$Aşçılık","$Botanik","$Balıkçılık","$Dericilik","$Marangozluk","$Hekimlik","$VahşiYaşam","$DuvarUstalığı","$Camcılık","$Demircilik","$Avcılık","$Şarapçılık","$Çekilme","$Kalkan","$Hançer","$Kılıç","$Balta","$Gürz","$Mızrak","$Yay","$Arbalet")
ON DUPLICATE KEY UPDATE
KullanıcıAdı=VALUES(KullanıcıAdı),
uid=VALUES(uid),
Isim=VALUES(Isim),
Cinsiyet=VALUES(Cinsiyet),
Irk=VALUES(Irk),
Boy=VALUES(Boy),
Kilo=VALUES(Kilo),
Gün=VALUES(Gün),
Ay=VALUES(Ay),
Yıl=VALUES(Yıl),
Güç=VALUES(Güç),
Bünye=VALUES(Bünye),
Dayanıklılık=VALUES(Dayanıklılık),
Çeviklik=VALUES(Çeviklik),
Karizma=VALUES(Karizma),
Zeka=VALUES(Zeka),
İrade=VALUES(İrade),
Odaklanma=VALUES(Odaklanma),
Ustalık=VALUES(Ustalık),
Ziraat=VALUES(Ziraat),
İşçilik=VALUES(İşçilik),
Aşçılık=VALUES(Aşçılık),
Botanik=VALUES(Botanik)
SQL;

Ошибка:

Неверное целочисленное значение: » для столбца ‘Ziraat’ в строке 1

3

I’m getting following error when I submit a form:

Can't added a new post. Incorrect integer value: '' for column 'aid' at row 1

Php Code:

$insert = mysql_query("INSERT INTO brt_articles VALUES( '', '$post_title', '$des', 
'$date', '$org_date')");    

    if($insert)
    {
        echo "<font color=green>Successfully added a new article.</font>";
        header("Refresh:3; url=allbrtarticle.php");
    }
    else
    {
        echo "<font color=red>Can't added a new post</font>" . 
              mysql_error();
    }

In my Localhost It’s ok. But in server why it’s giving me a error message ?

asked Feb 25, 2013 at 4:28

Babu Ahmed's user avatar

5

Probably that DB has differents settings than your local. STRICT_TRANS_TABLES mode might be turned on.
Try SELECT @@GLOBAL.sql_mode; and SELECT @@SESSION.sql_mode;.

answered Feb 25, 2013 at 4:48

sectus's user avatar

sectussectus

15.6k5 gold badges54 silver badges97 bronze badges

The aid field does not accept '' value as input.

The safest way is to specify column names as you are sending the query.

INSERT INTO brt_articles (title_field, description_field, date_field, org_date, fieldname) VALUES('$post_title', '$des', '$date', '$org_date');

If aid is a primary key, simply omit that field in your query

INSERT INTO brt_articles VALUES('$post_title', '$des', '$date', '$org_date')

answered Feb 25, 2013 at 4:36

Starx's user avatar

StarxStarx

77.2k47 gold badges183 silver badges260 bronze badges

2

aid is a column that is an integer, and you’re trying to insert '' into it. '' is not a number, so the insertion fails.

Perhaps there’s a server setting to auto-convert the incorrect type, but you shouldn’t rely on it (as you’ve just found out)

answered Feb 25, 2013 at 4:30

Patashu's user avatar

PatashuPatashu

21.4k3 gold badges45 silver badges53 bronze badges

This causes the error aid(INT) — which is included on you table columns(first column).

If its auto increment remove the ».

$insert = mysql_query("INSERT INTO brt_articles VALUES('$post_title', '$des', 
'$date', '$org_date')");  

Regards

answered Feb 25, 2013 at 4:32

BizApps's user avatar

BizAppsBizApps

6,0589 gold badges40 silver badges62 bronze badges

2

try

"INSERT INTO brt_articles VALUES('".$post_title."', '".$des."', '".$date."', '".$org_date."')"

Remove first '' it’s not needed as MySQL automatically add it if its primary key and auto_increment.

answered Feb 25, 2013 at 4:35

Dipesh Parmar's user avatar

Dipesh ParmarDipesh Parmar

27k8 gold badges60 silver badges90 bronze badges

your local db has the value of that column set to auto increment or has a default value.

on the server db, the table definition is not the same.

review and compare the table definitions and then make them consistent.

answered Feb 25, 2013 at 4:42

mson's user avatar

msonmson

7,7626 gold badges40 silver badges70 bronze badges

2

Начнем сначала. Допустим, мне нужно написать хранимую процедуру (Postgresql, версия 11), которая добавляла бы данные в таблицу и проверяла корректные ли данные введены пользователем.

Т.е. что-то типо этого:
CREATE PROCEDURE add_product_4 (a INT, b TIMESTAMP, c VARCHAR(20), d VARCHAR(50), e INT, f INT)
AS $$
BEGIN
INSERT INTO sales (ID, Sale_time, Pharmacy, product, Number_of_packages, Price)
VALUES (a, b, c, d, e, f);
END;
$$ LANGUAGE ‘plpgsql’;

Потом данная процедура вызывается, например так:
add_product_4(‘2’, ‘2019.11.12 12:23:24’, ‘Апрель’, ‘Цитрамон’, ’18’, ‘105’);

Пока все хорошо. НО, если в последнюю переменную вставить строковое значение, то клиент выдаст ошибку:
«ERROR: ОШИБКА: неверное значение для целого числа: «df»
LINE 2: …’, ‘2019.11.12 12:23:24’, ‘Апрель’, ‘Цитрамон’, ’18’, ‘df’);
^
SQL-состояние: 22P02
Символ: 78″

Моя же задача, чтобы данная ошибка приобрела читабельный вид.

Я попробовала сделать это так:
CREATE PROCEDURE add_product_4 (a INT, b TIMESTAMP, c VARCHAR(20), d VARCHAR(50), e INT, f INT)
AS $$
BEGIN
INSERT INTO sales (ID, Sale_time, Pharmacy, product, Number_of_packages, Price)
VALUES (a, b, c, d, e, f);
EXCEPTION
WHEN invalid_text_representation THEN
RAISE NOTICE ‘Ошибка: неверный тип переменной’;
END;
$$ LANGUAGE ‘plpgsql’;

Т.е. зная код ошибки (22P02), я зашла на сайт: https://www.postgresql.org/docs/11/errcodes-append…
и узнала, как эта ошибка называется, после чего вставила это название после конструкции EXCEPTION WHEN. И применила конструкцию RAISE NOTICE для того. чтобы клиент теперь выводил заданный мною текст.

Но в итоге, после выполнения колла, ничего не меняется, клиент так и выводит дефолтный ответ (см. картинку).
5f6ca9b35bd04903012432.png

Я смотрела видеоурок, где человек делает всё тоже самое и у него получается. я не могу понять, что я делаю не так?
Само задание получила от работодателя, т.е. это тестовое задание, поэтому так важно сделать именно так, как просят.

Исправление ошибки #ЧИСЛО!

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel для iPad Excel Web App Excel для iPhone Excel для планшетов с Android Excel 2010 Excel 2007 Excel для Mac 2011 Excel для телефонов с Android Excel для Windows Phone 10 Excel Mobile Excel Starter 2010 Еще…Меньше

В Excel эта ошибка возникает тогда, когда формула или функция содержит недопустимое числовое значение.

Такое часто происходит, если ввести числовое значение, используя тип данных или числовой формат, который не поддерживается в разделе аргументов данной формулы. Например, нельзя ввести значение $1,000 в формате валюты, так как знаки доллара используются как индикаторы абсолютной ссылки, а запятые — как разделители аргументов. Чтобы предотвратить появление ошибки #ЧИСЛО!, вводите значения в виде неформатированных чисел, например 1000.

В Excel ошибка #ЧИСЛО! также может возникать, если:

  • в формуле используется функция, выполняющая итерацию, например ВСД или СТАВКА, которая не может найти результат.

    Чтобы исправить ошибку, измените число итераций формулы в Excel.

    1. На вкладке Файл выберите пункт Параметры. Если вы используете Excel 2007, нажмите кнопку Microsoft Office Изображение кнопки Office и выберите Параметры Excel.

    2. На вкладке Формулы в разделе Параметры вычислений установите флажок Включить итеративные вычисления.

      Снимок экрана: параметры итеративных вычислений

    3. В поле Предельное число итераций введите необходимое количество пересчетов в Excel. Чем больше предельное число итераций, тем больше времени потребуется для вычислений.

    4. Для задания максимально допустимой величины разности между результатами вычислений введите ее в поле Относительная погрешность. Чем меньше число, тем точнее результат и тем больше времени потребуется Excel для вычислений.

  • Результат формулы — число, слишком большое или слишком малое для отображения в Excel.

    Чтобы исправить ошибку, измените формулу таким образом, чтобы результат ее вычисления находился в диапазоне от -1*10307 до 1*10307.

    Совет: Если в Microsoft Excel включена проверка ошибок, нажмите кнопку Значок кнопки рядом с ячейкой, в которой показана ошибка. Выберите пункт Показать этапы вычисления, если он отобразится, а затем выберите подходящее решение.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Полные сведения о формулах в Excel

Рекомендации, позволяющие избежать появления неработающих формул

Поиск ошибок в формулах

Функции Excel (по алфавиту)

Функции Excel (по категориям)

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

  • Ошибка неверное значение для параметра lc messages
  • Ошибка неверное выражение паскаль
  • Ошибка неверное выражение pascal abc
  • Ошибка неверно указана единица измерения word как убрать
  • Ошибка неверно задано имя папки на windows 10