ошибка в navicat lite mysql gui: неизвестный столбец в «списке полей» - PullRequest
1 голос
/ 15 августа 2011

Я использую Navicat Lite с базой данных MySQL.

моя база данных тестовая

и у меня есть таблица именованных транзакций со схемой : дата, общее имя, buyORsell, количество, окончательный вариант

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

Мое требование: с учетом ввода (тип транзакции, то есть «покупка» или «продажа»), он должен выводить все транзакции с этим типом

Я создаю функцию и нажимаю на процедуру

BEGIN
    #Routine body goes here...
select * from test.transactions where buyORsell = intype;
END

В поле ниже я вижу:

IN `intype` char

Но когда я запускаю это prcedure и набираю sell во всплывающем окне "enter parameter", я получаю ошибку:

Неизвестный столбец «продать» в «списке полей»

Пожалуйста, помогите ..

Ответы [ 3 ]

1 голос
/ 03 октября 2012

У меня была такая же проблема. Я исправил это, определив char с длиной (т. Е. char(254)), а затем обернул входную строку в кавычки при появлении запроса.

0 голосов
/ 25 марта 2012

Похоже, это может быть проблема с Navicat.Теперь я использую HeidiSQL для функций, и это, кажется, работает нормально.

С Navicat та же проблема возникает, когда у меня есть входной параметр - использую ли я этот параметр или нет.Как и Мартин, я могу очистить весь код из BEGIN ... END, но все равно получаю ошибку, если я использую любой входной параметр char или varchar.

Фактически, использование varchar в качестве входного параметра ВСЕГДА дает сохранение /ошибка компиляции с ЛЮБОЙ функцией с помощью Navicat.При использовании Navicat функции Varchar полностью нарушены.

0 голосов
/ 29 сентября 2011

У вас есть ошибка в определении вашей хранимой процедуры, и вы забыли включить intype в качестве параметра

...