CREATE OR REPLACE PROCEDURE USP_ABC(SNO1 ABC.SNO%TUPE) IS
BEGIN
UPDATA ABC 
SET SNO = 008, SNAME = POM, SSEX = W, SDEPT = MIN, ADDRESS = NE 
WHERE SAGE < SNO1;
IF SQL%ROWCOUNT = 0 THEN
INSERT INTO AOE (CNO, CNAME) VALUES ('sno1', 'zh');
END IF;
COMMIT;
END USP_ABC;
这个存储过程有什么问题吗?
提示:PLS00103错误,出现符号'ABC'在需要下列之一时: :=.@(%;
在出现符号','在需要下列之一时:(
出现符号'if'
注:ABC AOE都是表名

解决方案 »

  1.   

    1.参数类型错误:SNO1 ABC.SNO%TUPE->SNO1 ABC.SNO%TyPE;2.updata 关键字错误,->update3.忘了加分号;4.IF SQL%ROWCOUNT = 0 THEN 这种写法没试过,->IF sql%notfound THEN 这种是可以的。调整后如下:
    CREATE OR REPLACE PROCEDURE USP_ABC(SNO1 ABC.SNO%TyPE) IS 
    BEGIN 
    update  ABC  
    SET SNO = '008', SNAME = 'POM', SSEX = 'W', SDEPT = 'MIN', ADDRESS = 'NE' 
    WHERE SAGE  < SNO1; 
    IF sql%notfound THEN 
    INSERT INTO AOE (CNO, CNAME) VALUES ( 'sno1 ',  'zh '); 
    END IF; 
    COMMIT; 
    END USP_ABC;