You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle SQL PLUS中声明常量?

在Oracle SQL PLUS中声明常量的方法

SQL PLUS本身没有专门的“常量”声明语法,但可以通过两种方式实现常量的效果:

方法一:基于DEFINE命令实现(会话级常量)

你已经熟悉用DEFINE声明变量,同样可以用它定义常量,通常通过命名规则(比如C_前缀、全大写)区分,还能通过参数锁定值避免被修改:

-- 基础常量定义
DEFINE C_MAX_RECORDS = 100
DEFINE C_DEFAULT_SCHEMA = 'HR'

-- 锁定常量,禁止后续修改
DEFINE C_TARGET_TABLE = 'BUSINESS_UNIT_T' NOVERRIDE

添加NOVERRIDE后,若尝试重新赋值该常量,SQL PLUS会直接报错,以此保证其不可修改性。

方法二:在PL/SQL块中声明真正的常量

如果是在PL/SQL代码里使用,可通过CONSTANT关键字声明编译级常量,运行时完全无法修改:

DECLARE
  C_TARGET_TABLE CONSTANT VARCHAR2(30) := 'BUSINESS_UNIT_T';
  C_MAX_SALARY CONSTANT NUMBER := 100000;
BEGIN
  DBMS_OUTPUT.PUT_LINE('目标表名称:' || C_TARGET_TABLE);
END;
/

补充说明

  • DEFINE定义的常量是会话级的,在整个SQL PLUS会话中有效;PL/SQL常量仅在当前块或子程序范围内有效。
  • 执行无参数的DEFINE命令,可查看当前会话所有已定义的常量和变量。

内容的提问来源于stack exchange,提问作者radha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:42:32