我正在使用带有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时,我收到错误:
'字段列表'中的未知列'卖'
请帮助..
答案 0 :(得分:1)
我遇到了同样的问题。我通过定义具有长度(即char(254)
)的char来修复它,然后在提示时将输入字符串包装在引号中。
答案 1 :(得分:0)
存储过程定义中存在错误,但忘记将intype包含为参数
答案 2 :(得分:0)
看起来可能是Navicat问题。我现在使用HeidiSQL来实现功能,这似乎工作得很好。
使用Navicat时,当我有输入参数时会出现同样的问题 - 无论我是否使用该参数。像Martin一样,我可以清除BEGIN ... END中的所有代码,但是如果我使用任何char或varchar输入参数仍会出错。
实际上,使用varchar作为输入参数ALWAYS使用Navicat给出了任何函数的保存/编译错误。使用Navicat,函数中的Varchar似乎完全崩溃了。