SQL Developer执行PL/SQL脚本报错,请求排查原因及解决方法
PL/SQL脚本在SQL Developer中运行失败的问题排查与修复
嘿,我帮你搞定这个PL/SQL脚本的问题,你现在遇到的错误都是因为脚本里的语法问题和非执行内容没处理好,咱们一步步来:
你的原始脚本
P_jobgroup_id : 'GDWH2MYGDWH-GDWH2MYGDWH' CORE load finished 'GDWH2MYGDWH-GDWH2MYGDWH_IF' IF finished 'GDWH2MYGDWH-GDWH2MYGDWH_INIT' IF or CORE started declare p_context_code varchar2(100) := 'GDWH2MYGDWH'; v_res varchar2(100); begin v_res := OJC.jc_master.main ( p_batch_number => NULL, p_jobgroup_id => 'GDWH2MYGDWH-GDWH2MYGDWH'), p_parameters_string => 'GDWH2MYGDWH.PRM_REPORTING_DATE='||to_char(sysdate,'yyyymmddhh24miss', p_context_code =>p_context_code ); end; /
报错信息
第1行命令:P_jobgroup_id : 未知命令;
第2行命令:'GDWH2MYGDWH-GDWH2MYGDWH' CORE load finished 未知命令;
ORA-06550: 第8行,第50列:PLS-00103: 遇到符号 ",",期待以下之一:. ( * % & = - + ; < / > at in is mod remainder not rem
错误原因分析
- 开头的非PL/SQL内容未加注释:脚本前3行是类似日志或说明的内容,但没有添加注释符号,SQL Developer会把它们当作独立的执行命令,自然识别不了这些语法。
- 函数调用的语法错误:
p_jobgroup_id参数后面多写了一个右括号,应该用逗号分隔参数,而不是右括号。to_char函数的调用没有闭合,少了一个结尾的右括号。
修复后的脚本
-- 把开头的日志内容改为单行注释,避免被当作执行命令 -- P_jobgroup_id : 'GDWH2MYGDWH-GDWH2MYGDWH' CORE load finished -- 'GDWH2MYGDWH-GDWH2MYGDWH_IF' IF finished -- 'GDWH2MYGDWH-GDWH2MYGDWH_INIT' IF or CORE started declare p_context_code varchar2(100) := 'GDWH2MYGDWH'; v_res varchar2(100); begin v_res := OJC.jc_master.main ( p_batch_number => NULL, p_jobgroup_id => 'GDWH2MYGDWH-GDWH2MYGDWH', -- 移除多余的右括号 p_parameters_string => 'GDWH2MYGDWH.PRM_REPORTING_DATE='||to_char(sysdate,'yyyymmddhh24miss'), -- 补全to_char的闭合括号 p_context_code => p_context_code ); end; /
调整说明
- 给开头的3行日志内容加上
--,转为单行注释,避免SQL Developer把它们当作命令执行。 - 移除了
p_jobgroup_id参数后多余的右括号,保持参数之间用逗号分隔的正确格式。 - 补全了
to_char函数的结尾右括号,确保函数调用语法完整。 - 调整了代码缩进,让脚本结构更清晰,方便后续维护和排查问题。
内容的提问来源于stack exchange,提问作者eda
相关产品推荐
相关产品推荐

