首页 > 解决方案 > 尝试回答挑战时出现错误

问题描述

创建一个块,其中包含一个可以保存日期值的变量(用于计费日期)、一个可以保存字符串的变量(用于姓氏)和一个可以保存数值的变量(用于贷方余额)。对于变量名,请遵循本章介绍的命名约定。将日期变量初始化为 2012 年 10 月 21 日,将数值变量初始化为 1,000。在块的可执行 (BEGIN) 部分中,将字符变量的值指定为 Brown,并包含语句以显示每个变量的值。

如何声明和分配日期变量?

标签: plsql

解决方案


如何声明和分配日期变量?

像这样:

v_billing_date date := date '2021-10-21';

我使用了日期文字;你可以使用TO_DATE函数,例如

v_billing_date date := to_date('21.10.2021', 'dd.mm.yyyy');

只是不要依赖隐式转换,使用字符串代替日期,希望 Oracle 能正确地将其转换为有效的日期值。

SQL> set serveroutput on;
SQL> declare
  2    v_billing_date    date           := date '2021-10-21';
  3    v_last_name       varchar2(20);
  4    v_credit_balance  number         := 1000;
  5  begin
  6    v_last_name := 'Brown';
  7
  8    dbms_output.put_line(v_last_name);
  9    dbms_output.put_line(to_char(v_credit_balance));
 10    dbms_output.put_line(to_char(v_billing_date, 'dd.mm.yyyy'));
 11  end;
 12  /
Brown
1000
21.10.2021

PL/SQL procedure successfully completed.

SQL>

推荐阅读