PLS-00103: 出现符号 "("在需要下列之一时:
:= . ) , @ %
default character
符号 ":=" 被替换为 "(" 后继续。
错误分析:存储过程各参数类型,不需要制定范围,比如varchar2(12)写成varchar2就可以了
错误代码:
CREATE OR REPLACE PROCEDURE query_adoutCus(cus_id IN varchar2(12))
AS
V_phoneunum VARCHAR2(10);
V_usingmt varchar2(60);
BEGIN
SELECT phonenum,usingmt INTO V_phoneunum,V_usingmt FROM t_customer WHERe id=cus_id;
DBMS_OUTPUT.PUT_LINE('客户信息为--'||'手机号为-'||V_phoneunum||'现用车牌为-'||V_usingmt);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('没有该编号客户!');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('有重复客户编号!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生其他错误!');
END;
正确代码:
CREATE OR REPLACE PROCEDURE query_adoutCus(cus_id IN varchar2)
AS
V_phoneunum VARCHAR2(10);
V_usingmt varchar2(60);
BEGIN
SELECT phonenum,usingmt INTO V_phoneunum,V_usingmt FROM t_customer WHERe id=cus_id;
DBMS_OUTPUT.PUT_LINE('客户信息为--'||'手机号为-'||V_phoneunum||'现用车牌为-'||V_usingmt);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('没有该编号客户!');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('有重复客户编号!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生其他错误!');
END;
本文详细解析了PLS-00103错误,即在Oracle PL/SQL中不当使用括号导致的问题。通过对比错误与正确代码,阐述了在存储过程参数声明中避免指定数据类型长度的重要性。
15万+

被折叠的 条评论
为什么被折叠?



