Nano Hash - криптовалюты, майнинг, программирование

Ошибка DECFLOAT при выполнении процедуры в DB2

Я выполняю следующую процедуру в DB2.

create procedure checkUpdate()
LANGUAGE SQL
begin 
DECLARE EOF INT DEFAULT 0;
DECLARE STMT VARCHAR(200);
DECLARE COL_NAME NVARCHAR(40);
    Declare col_name_cursor cursor  for 
    select c.column_name from sysibm.tables t join sysibm.columns c on t.table_schema =   c.table_schema and t.table_name = c.table_name where t.table_schema ='ARCHANA' and t.table_name =   'ADULT'  and c.data_type not like 'CHARACTER%';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET EOF = 1;
    OPEN col_name_cursor;
    WHILE EOF = 0 DO
    FETCH FROM col_name_cursor INTO COL_NAME;
    INSERT INTO GAUSSIAN_VALUES select CLASS,avg(COL_NAME),stddev(COL_NAME) from ADULT GROUP BY CLASS;
    END WHILE;
    CLOSE col_name_cursor;
    end@

Однако при выполнении этого в командном окне DB2 я получаю следующую ошибку.

SQL0420N Недопустимый символ в аргументе символьной строки функции "DECFLOAT". SQLSTATE = 22018

Я провел некоторую отладку и обнаружил, что ошибка исходит из строки курсора Declare. Я изменил оператор выбора для курсора на «выбрать возраст от взрослого» для проверки, и ошибка исчезла. Ошибка не возникает при выборе целочисленных значений. Происходит в случае varchar. Я застрял и не знаю, какой ссылки здесь не хватает.

Спасибо!


  • Что ты здесь делаешь? Если вы пытаетесь усреднить все значения в любом столбце, который вы вытащили, вам действительно понадобится динамический SQL - как он есть, он пытается усреднить константу - независимо от того, что содержит строка COL_NAME (вот почему вы получаете ошибку). Какой смысл вставлять одно значение FEATURE в другую строку? Имейте в виду, что таблицы - это неупорядоченные наборы, то есть две только что вставленные строки не расположены рядом друг с другом ... 08.12.2014
  • @ clockwork-Muse Да, я пытаюсь усреднить значения в столбце, который я вытащил. Спасибо за предложение. Я не знал про динамический sql. Вставка фичи была просто для тестирования. Забыл удалить это из кода. Прости. Спасибо. 08.12.2014

Ответы:


1

COL_NAME - это тип NVARCHAR ...

Как можно вычислить avg(COL_NAME),stddev(COL_NAME) символьного значения?

Возможно, вы хотели выдержать это?

08.12.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..