navicat lite中的错误mysql gui:'字段列表'中的未知列

时间:2011-08-15 14:59:19

标签: mysql sql stored-procedures navicat

我正在使用带有mysql数据库的navicat lite。

我的数据库是测试

我有一个表名为带架构的交易: date,sharename,buyORsell,quantity,finalrate

我正在尝试创建一个新程序,它接受一些输入并输出一些结果,我希望在执行此程序时,此程序要求用户输入参数并相应地输出结果。

我的要求:给定输入(交易类型,即“买入”或“卖出”),它应输出该类型的所有交易

我创建一个函数并单击过程

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

在下面的空白处,我看到了:

IN `intype` char

但是当我运行此程序并在“输入参数”弹出窗口中键入sell时,我收到错误:

'字段列表'中的未知列'卖'

请帮助..

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我通过定义具有长度(即char(254))的char来修复它,然后在提示时将输入字符串包装在引号中。

答案 1 :(得分:0)

存储过程定义中存在错误,但忘记将intype包含为参数

答案 2 :(得分:0)

看起来可能是Navicat问题。我现在使用HeidiSQL来实现功能,这似乎工作得很好。

使用Navicat时,当我有输入参数时会出现同样的问题 - 无论我是否使用该参数。像Martin一样,我可以清除BEGIN ... END中的所有代码,但是如果我使用任何char或varchar输入参数仍会出错。

实际上,使用varchar作为输入参数ALWAYS使用Navicat给出了任何函数的保存/编译错误。使用Navicat,函数中的Varchar似乎完全崩溃了。