【问题标题】:How to use select into a local variable in SYBASE ASE如何在 SYBASE ASE 中将 select 用于局部变量
【发布时间】:2014-04-14 02:54:11
【问题描述】:

我正在使用 Sybase ASE 15.0.3。我想使用这种类型的逻辑,但它给了我错误。

begin
declare 
@b int, @c int

select      @b = Count(My_ID) 
FROM        some_table
WHERE       (some_condition);


select      @c = Count(My_Sales) 
FROM        some_table
WHERE       (some_condition);


insert into my_table (new_id, new_sales) value (@b, @c);

end;

然后使用这些变量将值插入到表中。

错误:“尝试将空值插入“new_id”,表“my_table”列不允许空值。更新失败”

【问题讨论】:

  • @b 的值是多少?可能有空。

标签: sybase sap-ase


【解决方案1】:

在执行 SQL 语句之前,您可能需要通过以下方式准备 SQL 语句:

 select @sql='insert into my_table (new_id, new_sales) values ('+convert(varchar(10),@b)+','+convert(varchar(10),@c)+')'
 exec @sql

【讨论】:

  • 它给出错误:“不允许从数据类型 'BIGINT' 到 'VARCHAR' 的隐式转换。使用转换函数运行此查询”因为我的变量之一是 BIGINT。
  • 在准备好的 SQL 语句中,您应该将变量转换为 varchar()。我更正了我上面的陈述
  • 谢谢,现在工作正常。
猜你喜欢
  • 2013-06-07
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-11
  • 2019-11-20
相关资源
最近更新 更多