【问题标题】:Informix stored procedure errorsInformix 存储过程错误
【发布时间】:2012-06-01 03:06:27
【问题描述】:

我正在尝试创建一个简单的过程,在给定数字时查找 fname 和 lname

create procedure _lookup_name (_no int)
select (fname || ' ' || lname)  from table where number = _no;
end procedure;

我不断收到一条错误消息,提示“SELECT 语句需要 INTO TEMP 表。

【问题讨论】:

  • 你希望过程如何返回值?
  • 我有一堆其他语法定义了一个变量,然后告诉 select 语句将结果放入该变量,但我仍然遇到语法错误

标签: sql informix


【解决方案1】:

您需要将select 语句的结果放入变量或表中。看: w3schools (into table)here temp table in memory

【讨论】:

  • 有没有办法在不制作临时表的情况下做到这一点?
  • 你也许可以。其他人可能更清楚。您也许可以创建一个对象,该对象具有某种来自您的 select 语句的值数组。但是将其设置为内存中的临时表或其他东西可能会更容易。
  • 试试看this answer
  • 我试过这个,同样的结果 create procedure _lookup_name (_no int) begin declare name varchar(100); select (fname || ' ' || lname) into name from table where no = _no;选择名称;结束;
  • 这是因为您的 select 语句可以返回多个名称,而您的 name 变量不能包含多个名称。我推荐一个临时表...
【解决方案2】:

也许:

define var1 char(30);
define var2 char(30);
create procedure _lookup_name (_no int)
    select (fname || ' ' || lname) into var1,var2 from table where number = _no;
end procedure;

【讨论】:

  • 你能补充一些解释这个修复了什么以及为什么?
猜你喜欢
  • 2012-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多