在 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 中声明变量以避免任何数据类型问题的最佳做法。
我是 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 中声明变量以避免任何数据类型问题的最佳做法。