在 Oracle 中声明变量(PL/SQL 开发人员)

Declare Variables in Oracle (PL/SQL Developer)

我是 Oracle 的新手/PL/SQL 开发人员并且想知道声明变量的最佳实践。

在 TSQL 中,我习惯于执行以下操作,想知道 oracle 中的等效项是什么。

DECLARE @WeekNumber Date
SET @WeekNumber '2020-10-01'
SELECT @Date ..... 

干杯,我很欣赏这很基本。

等同于

SQL> set serveroutput on size unlimited
SQL>  declare
   weekNumber Date := to_date('2020-10-01','YYYY-MM-DD');
 begin
   dbms_output.put_line(weekNumber);
 end;
 /  2    3    4    5    6
01-OCT-20

PL/SQL procedure successfully completed.

SQL>

现在,如果您想在 select 或任何其他语句中使用变量

SQL>  set serveroutput on size unlimited
 declare
   weekNumber Date := to_date('2020-10-01','YYYY-MM-DD');
 begin
        insert into t1 values ( weekNumber ) ;
        commit;
 end;
 / SQL>   2    3    4    5    6    7

PL/SQL procedure successfully completed.

SQL> select * from t1 ;

C1
---------
01-OCT-20

SQL>

在 Plsql 中,您可以选择根据 table 列的现有数据类型声明变量。

假设您有一个 table table1 列 Current_week 作为日期数据类型,那么您可以这样声明它。

declare
weeknumber table1.current_week%type;
begin
select week into weeknumber from table1;
end;

这是在 Oracle PL/SQL 中声明变量以避免任何数据类型问题的最佳做法。