首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将值赋值给IN参数

无法将值赋值给IN参数
EN

Stack Overflow用户
提问于 2022-03-14 13:28:08
回答 1查看 63关注 0票数 0
代码语言:javascript
运行
复制
procedure check_startDate_is_grower_than_last_foo(startDate IN OUT DATE) as
    last_foo_tsp DATE;
begin
    select max(version_tsp) into last_foo_tsp from foo;
    if startDate <= last_foo_tsp then
        if trunc(startDate) = trunc(last_foo_tsp) then
            startDate := (last_foo_tsp + 1/86400); -- +1 seg                
        else
            raise_application_error(-20001, 'Blabla');
        end if;
    end if;
end;

我收到一个错误:

代码语言:javascript
运行
复制
PLS-00363: expression 'STARTDATE' cannot be used as an assignment target

我做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2022-03-14 13:35:34

我不知道你做错了什么,因为-这对我有用。

代码语言:javascript
运行
复制
SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';

Session altered.

SQL> select * from foo;

VERSION_TSP
-------------------
15.02.2022 00:00:00

代码语言:javascript
运行
复制
SQL> create or replace
  2  procedure p_check (startDate IN OUT DATE) as
  3      last_foo_tsp DATE;
  4  begin
  5      select max(version_tsp) into last_foo_tsp from foo;
  6      if startDate <= last_foo_tsp then
  7          if trunc(startDate) = trunc(last_foo_tsp) then
  8              startDate := (last_foo_tsp + 1/86400); -- +1 seg
  9          else
 10              raise_application_error(-20001, 'Blabla');
 11          end if;
 12      end if;
 13  end;
 14  /

Procedure created.

测试:

代码语言:javascript
运行
复制
SQL> set serveroutput on
SQL> declare
  2    l_datum date := date '2022-02-15';
  3  begin
  4    p_check (l_datum);
  5    dbms_output.put_line('result = ' || l_datum);
  6  end;
  7  /
result = 15.02.2022 00:00:01

PL/SQL procedure successfully completed.

SQL>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71468558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档