如何永久配置Oracle避免含&字符的语句弹出变量输入提示?
Oracle SQL Developer & 字符变量输入提示永久关闭方案
首先明确:&符号触发变量输入是SQL Developer等Oracle客户端的自带功能,不属于Oracle数据库服务端的默认行为,因此不存在数据库层面的全局永久配置项,仅需要修改客户端配置即可永久生效,常用方案如下:
方案1:修改SQL Developer全局启动脚本
- 找到SQL Developer安装路径下的
sqldeveloper/bin目录 - 检查目录下是否存在
login.sql文件,不存在则手动新建 - 在
login.sql文件中添加一行语句:SET DEFINE OFF - 保存文件后重启SQL Developer,后续所有新创建的会话都会自动执行该配置,默认关闭变量替换功能
该配置仅对当前设备的SQL Developer生效,更换客户端或设备需要重新配置
方案2:直接修改SQL Developer偏好设置
- 打开SQL Developer,顶部菜单栏选择「工具 -> 首选项」(英文版本为
Tools -> Preferences) - 左侧导航栏依次展开「数据库 -> NLS」
- 取消勾选「替换&为变量」(英文版本为
Replace "&" with variables)选项 - 点击「确定」保存配置,无需重启即可立即生效,后续所有会话都不会将
&识别为变量前缀
临时替代方案
如果不想修改全局配置,也可以在写SQL时将&替换为CHR(38),示例如下:
-- 原写法会触发变量提示 SELECT 'test&demo' FROM dual; -- 修改后写法不会触发提示 SELECT 'test'||CHR(38)||'demo' FROM dual;
如果需要在其他Oracle客户端(比如Sqlplus)也实现永久关闭,可以对应修改客户端的全局启动脚本,比如在Sqlplus的glogin.sql文件中添加SET DEFINE OFF即可。
内容的提问来源于stack exchange,提问作者banana_99
相关产品推荐
相关产品推荐

