Navicat中执行CREATE OR REPLACE AND COMPILE JAVA语句如何转义分号
问题原因
你遇到的报错是因为Navicat默认将分号;识别为SQL语句分隔符,而Java源码内部自带大量分号,会导致Navicat提前截断语句,把不完整的片段提交到数据库。
解决方法
方法一:临时修改SQL分隔符(最稳妥)
- 按以下三段结构组织你的查询代码,选中全部内容一起执行即可:
- 先将SQL分隔符临时修改为不会和Java代码冲突的符号,比如
/
DELIMITER /- 写入你需要执行的Java源码创建语句,末尾补上新的分隔符
/标记语句结束
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED util AS import java.io.IOException; public class Util { public static String exec(String cmd) throws IOException { Runtime.getRuntime().exec(cmd); return ""; } } /- 执行完成后把分隔符改回默认的分号,避免影响后续常规SQL执行
DELIMITER ; - 先将SQL分隔符临时修改为不会和Java代码冲突的符号,比如
方法二:使用整脚本执行功能
写完完整的Java创建语句后,不要点击常规的执行按钮(默认会按分隔符拆分语句),而是点击顶部菜单栏的 查询 -> 执行整个脚本,该功能会把查询窗口内的全部内容作为单条语句提交到数据库,不会自行拆分截断,也可以正常执行成功。
内容的提问来源于stack exchange,提问作者daisy
相关产品推荐
相关产品推荐

