如何在SQL Developer中插入含百分号的字符串字段值
问题说明
在SQL Developer中执行包含%TASK_ID%字符串的INSERT语句时,工具会将其识别为待输入的替换变量弹出取值输入框,需要跳过该步骤,直接把%TASK_ID%作为普通字符串内容插入对应字段。
待执行的原SQL如下:
INSERT INTO table_name (column1, ...) VALUES ('a.jsp?action=delete&TASK_ID=%TASK_ID%', ...);
可行解决方法
会话级关闭替换变量识别(优先推荐,灵活度最高)
执行INSERT语句前,先在当前SQL工作表运行一行命令:SET DEFINE OFF;运行后当前会话会临时关闭替换变量自动识别功能,再执行原INSERT语句时,字符串内的
&、%都会被当作普通字符处理,%TASK_ID%会完整写入对应字段。后续如果需要恢复变量输入提示,执行SET DEFINE ON;即可切回默认状态。永久关闭全局替换变量提示
如果日常使用完全不需要替换变量输入功能,可以直接修改工具配置永久屏蔽弹窗:- 点击顶部菜单栏「工具」→「首选项」
- 在设置面板左侧找到「SQL编辑器」分类
- 取消勾选右侧的「替换变量提示」选项,保存设置即可生效。
字符串拼接绕开识别(不修改配置/会话状态时使用)
不想调整替换变量相关设置的话,可以把触发识别的片段拆分为字符串拼接结构,让工具无法匹配到变量占位符,修改后的SQL示例:INSERT INTO table_name (column1, ...) VALUES ('a.jsp?action=delete&TASK_ID=' || '%' || 'TASK_ID' || '%', ...);该写法最终插入的字符串内容和原语句完全一致,执行时不会触发变量输入弹窗。如果是字符串内的
&符号触发的识别,也可以用CHR(38)(&符号的ASCII编码函数写法)替换&做拼接,同样能绕过识别。
内容的提问来源于stack exchange,提问作者skr
相关产品推荐
相关产品推荐

