如何在 Oracle PL/SQL 中将保留字声明为变量?

ale*_*ton 0 oracle plsql

绕过PL/SQL 值声明的Oracle SQL 保留字约束的最佳方法是什么?我意识到绑定和替换可能是实际查询的可接受替代方案,但是 Oracle PL/SQL 呢?例如,我想将一个数字变量声明为“num”,在 Oracle PL 查询中的结构如下:

SET SERVEROUTPUT ON
declare
  num number;
begin
   num := 10;
   DBMS_OUTPUT.put_line('The value of num ' || num); 
end;
Run Code Online (Sandbox Code Playgroud)

Bal*_*app 5

NUM 不是保留字。

最好的方法是不要使用保留字。

如果您坚持使用它们,您可以将它们放在引号之间。这不起作用:

SET SERVEROUTPUT ON
declare
  begin number;
begin
   begin := 10;
   DBMS_OUTPUT.put_line('The value of begin ' || begin); 
end;
/
Run Code Online (Sandbox Code Playgroud)

这样做:

SET SERVEROUTPUT ON
declare
  "begin" number;
begin
   "begin" := 10;
   DBMS_OUTPUT.put_line('The value of begin ' || "begin"); 
end;
/
Run Code Online (Sandbox Code Playgroud)

引号还使变量名区分大小写。"begin""Begin"并且"BEGIN"是不同的变量。