当前位置: 首页 > 知识库问答 >
问题:

Sybase SQL查询-执行存储过程时出错

刘阳舒
2023-03-14

当我试图执行这个存储过程时,我收到了一个错误:“数据库连接器错误:'不允许从数据类型'CHAR'隐式转换为'INT'。使用CONVERT函数运行这个查询“为什么?”?我该怎么解决这个问题?谢谢

这是im用来执行SP的查询:

CREATE PROCEDURE TestProc2(@store char(4))
AS
BEGIN
SELECT * FROM stores WHERE stor_id=@store
END

exec TestProc2 @store = "7066"
sp_help stores

stor_id,     char,       4
stor_name,   varchar,    40
stor_address,varchar,    40
city,        varchar,    20
state,       char,       2
country,     varchar,    12
postalcode,  char,       10
payterms,    varchar,    12

该列被设置为char(4),因此我不认为查询和数据类型不匹配

顺便说一句,我试过使用单引号、双引号和不使用引号的(“7066”),但仍然得到相同的sql错误。请帮忙

PS我在用sybase谢谢!下面是错误的屏幕截图。

你们还需要什么信息来帮我吗?谢谢

http://tinypic.com/r/2n24huq/8

共有1个答案

微生阳平
2023-03-14

看起来存储表中的stor_id字段是一个int。将存储过程更改为接受int而不是char(4)

CREATE PROCEDURE TestProc2(@store int)
AS
BEGIN
SELECT * FROM stores WHERE stor_id=@store
END
 类似资料:
  • 执行获取HQL查询时出现异常。查询大部分时间都有效,但有时会显示此异常 数据库是MySQL,使用的服务器是JBoss 5.1.0 GA 显示的错误是: 组织。冬眠例外GenericJDBCException:无法在组织上执行查询。冬眠例外SQLStateConverter。在组织中处理非特定异常(SQLStateConverter.java:126)。冬眠例外SQLStateConverter。o

  • 使用执行hql查询时出现错误 我的疑问是 堆栈跟踪是

  • 问题内容: 我有一个应用程序,每小时执行约20000次DATA-OPERATIONS DATA- OPERATION总共具有30个参数(用于所有10个查询)。有些是文本,有些是数字。某些Text参数最长为10000个字符。 每个DATA-OPERATION都执行以下操作: 单个DATA-OPERATION,可在数据库中插入/更新多个表(约10个)。 对于每一次DATA-OPERATION,我都会建

  • 如果出现多行,如何在php mysql中执行存储过程? 首先,我想从特定学生的表(练习测试结果)中提取不同的(chapter\u id) 然后代表distinct(chapter\u id)运行另一个查询以生成关联数组 我面临的问题是: 下面的代码是关于我到底想要什么的问题的更多信息

  • 问题内容: 我对执行速度非常慢的存储过程有些困惑。该存储过程基本上包含一个使用传入参数(in_id)的查询,并将其放在游标中,如下所示: 当我获得带有预定义值的SQL查询的执行计划时,使用索引可以得到良好的查询结果。但是,当我从应用程序中调用该过程时,我看到没有索引在使用中,并且该表得到了完整扫描,从而降低了性能。 如果删除WHERE子句的第一部分“(in_id为null)”,则应用程序的性能将再

  • 问题内容: 我们在应用程序中创建了许多效率低下的存储过程,我们总是将其推迟以提高其效率,直到我们对数据库性能遇到严重的问题为止。 现在,我正在考虑通过最常执行的存储过程一一修复它。 找出哪个存储过程最执行的最佳方法是什么? 是否有一个脚本可以显示哪个存储过程执行得最多? 问题答案: 使用: 参考:SQL SERVER‘2005’查找最高/最常使用的存储过程