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

Oracle SQL Developer创建函数报END未知命令错误排查

Oracle SQL Developer执行创建函数报END Error report - Unknown Command排查

错误根因

Get_Day_Name函数本身的PL/SQL语法没有问题,报错来自SQL Developer的语句解析逻辑:

  • 工具默认将分号;作为普通SQL语句的结束分隔符,但PL/SQL块(函数、存储过程、触发器、匿名块等)无法仅通过末尾的;标记整段块结束,工具执行到END;后会将后续空行、零散内容识别为独立命令,最终抛出Unknown Command错误。

修复方案

在整段创建函数代码的最后单独起一行加斜杠/即可。/是Oracle官方工具链中标记PL/SQL块提交结束的标准标识,添加后工具会将整段代码作为完整PL/SQL块提交执行,不会拆分解析语句。
修正后可直接运行的完整代码:

CREATE OR REPLACE FUNCTION Get_Day_Name(P_DAY DATE) RETURN VARCHAR2
IS
BEGIN
    RETURN(TO_CHAR(P_DAY,'DAY'));
END;
/

注意事项

  • 如果当前SQL工作表中存在其他代码,执行前请完整选中从CREATE OR REPLACE FUNCTION开头到末尾斜杠/的全部内容,再点击执行按钮,避免工具误识别零散内容触发解析错误。
  • 该函数默认返回的星期名称受数据库NLS_DATE_LANGUAGE参数影响,若需要固定返回指定语言的星期名,可给TO_CHAR传入NLS参数,例如固定返回中文星期的写法为TO_CHAR(P_DAY,'DAY','NLS_DATE_LANGUAGE=SIMPLIFIED CHINESE')。

内容的提问来源于stack exchange,提问作者Furkan Çelik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:09:21