1

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

我的数据库是测试

我有一个名为 transactions 的表,其架构:日期、共享名、buyORsell、数量、finalrate

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

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

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

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

在下面的空间中,我看到:

IN `intype` char

但是当我运行这个程序并在“输入参数”弹出窗口中输入卖时,我得到了错误:

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

请帮忙..

4

3 回答 3

1

我有同样的问题。我通过用长度(即char(254))定义 char 来修复它,然后在出现提示时将输入字符串用引号引起来。

于 2012-10-03T18:31:42.803 回答
0

您的存储过程定义中有错误,忘记将 intype 作为参数包含在内

于 2011-09-29T06:03:33.393 回答
0

看起来这可能是一个 Navicat 问题。我现在将 HeidiSQL 用于函数,这似乎工作正常。

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

事实上,使用 varchar 作为输入参数总是会给使用 Navicat 的任何函数带来保存/编译错误。使用 Navicat,函数中的 Varchar 似乎完全被破坏了。

于 2012-03-25T11:44:19.680 回答