PL/SQL带参数自定义函数报错PLS-00103的原因及解决方法
PLS-00103错误原因及解决方法
错误原因
你将PL/SQL函数定义与调用该函数的SQL查询语句放在同一脚本中,但未使用正确的分隔符分隔两者。Oracle解析脚本时,会把后续的SELECT select_by_id(2) FROM DUAL;视为函数定义块的一部分,而函数的END;之后不允许出现SELECT语句,因此触发PLS-00103语法错误。
解决方法
在函数定义的END;之后添加斜杠/,作为PL/SQL块的结束标记,让Oracle先完成函数的创建,再执行后续的SQL调用语句。修改后的代码如下:
CREATE OR REPLACE FUNCTION select_by_id(id_in IN NUMBER) RETURN clients%ROWTYPE AS result clients%ROWTYPE; BEGIN SELECT * INTO result FROM clients WHERE client_id = id_in; RETURN result; END; / SELECT select_by_id(2) FROM DUAL;
内容的提问来源于stack exchange,提问作者User656
相关产品推荐
相关产品推荐

