【问题标题】:Error: PLS-00428: an into clause is expected in this select statement错误:PLS-00428:此选择语句中应有一个 into 子句
【发布时间】:2013-11-26 09:12:08
【问题描述】:

我正在尝试创建如下所示的函数,但得到标题中所述的错误。

create or replace function gettaxmin(period_tax_type_id in double precision, tax_range in number) return double precision is
  Result double precision;
begin
  SELECT CASE WHEN max(tax_range) is null THEN 0 ELSE max(tax_range) END 

    FROM period_tax_rates WHERE (tax_range < 1) AND (period_tax_type_id = 2);
  return(Result);
end gettaxmin;

有什么想法吗?

【问题讨论】:

  • 错误信息有什么不清楚的地方?

标签: oracle plsql


【解决方案1】:

您必须将 SELECT 语句的结果存储到一个变量中(在本例中为“Result”):

create or replace function gettaxmin
            (period_tax_type_id in double precision, tax_range in number) 
    return double precision 
is
     Result double precision;
begin
  SELECT CASE WHEN max(tax_range) is null THEN 0 ELSE max(tax_range) END 
    INTO Result 
    FROM period_tax_rates WHERE (tax_range < 1) AND (period_tax_type_id = 2);
  return Result;
end gettaxmin;

【讨论】:

    【解决方案2】:

    您需要将结果存储到结果中

    create or replace function gettaxmin(period_tax_type_id in double precision, tax_range in number) return double precision INTO
    Result double precision;
    begin
    SELECT CASE WHEN max(tax_range) is null THEN 0 ELSE max(tax_range) END 
    
    FROM period_tax_rates WHERE (tax_range < 1) AND (period_tax_type_id = 2);
    return(Result);
    end gettaxmin;
    

    继续阅读http://dev.mysql.com/doc/refman/5.0/en/select-into.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      相关资源
      最近更新 更多