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

VS Code Oracle开发工具执行含"/"的SQL脚本报错求助

Oracle包编译问题:SQL Developer与VS Code Oracle扩展的行为差异

问题描述

myScript.sql文件包含包规范(package spec)和包体(package body)的定义,每个定义后都带有/,内容如下:

CREATE OR REPLACE PACKAGE myPackage AS
    ...
END myPackage;
/

CREATE OR REPLACE PACKAGE BODY myPackage AS
    ...
END myPackage;
/

在Oracle SQL Developer中的运行结果

打开myScript.sql并选择Run Script (F5),脚本输出显示包编译成功:

Package myPackage compiled


Package Body myPackage compiled

在VS Code Oracle开发工具扩展中的运行结果

打开myScript.sql并选择Execute All (Ctrl+R),脚本编译失败,输出如下:

ORA-24344: success with compilation error
PACKAGE created.

Commit complete.

同时问题面板中出现错误:PLS-00103: Encountered the symbol "/"

后续检查发现,编译失败后从数据库中打开包规范,整个包体被包含其中——这一问题在SQL Developer中运行同一文件时不会出现。推测原因是PL/SQL要求包规范和包体必须在独立的查询中定义,而/是用于分隔执行单元的符号,但VS Code的扩展对其解析逻辑与SQL Developer不一致。

补充说明

根据Oracle官方文档,/是执行SQL缓冲区内容的命令。目前不清楚为何VS Code Oracle扩展对/的解析与SQL Developer存在差异,但该问题已经严重影响团队的代码运行流程。

临时解决方案

经测试,在脚本文件顶部添加以下语句后,脚本可成功编译:

SET BLOCKTERMINATOR /

目前仍需验证该修改的安全性,以及如何在VS Code启动时默认配置该参数,但已解决当前的编译问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:02:40