CREATE or replace procedure TEST_NID(SNAME IN VARCHAR2 ,numage in number )
AS
age number;
sname1 varchar2(10);
begin
select t.sage into age from nidong.stafmast t where t.sname=sname;
--update nidong.stafmast t set t.sage= numage where t.sname=sname;
commit;
dbms_output.put_line(age);
end ;注释的那句如果取消注释,则编译这个存过会是无效状态。如果注释掉那句,则编译后存过是有效状态。为什么??高人指点下啊。。我没发现我语法有错。
AS
age number;
sname1 varchar2(10);
begin
select t.sage into age from nidong.stafmast t where t.sname=sname;
--update nidong.stafmast t set t.sage= numage where t.sname=sname;
commit;
dbms_output.put_line(age);
end ;注释的那句如果取消注释,则编译这个存过会是无效状态。如果注释掉那句,则编译后存过是有效状态。为什么??高人指点下啊。。我没发现我语法有错。
CREATE TABLE stafmast(sname VARCHAR2(50),sage NUMBER(5));
INSERT INTO stafmast VALUES ('xiaoming',20);CREATE or replace procedure TEST_NID(SNAME IN VARCHAR2 ,numage in number )
AS
age number;
sname1 varchar2(10);
begin
select t.sage into age from stafmast t where t.sname=sname;
update stafmast t set t.sage= numage where t.sname=sname;
commit;
dbms_output.put_line(age);
end ;
SELECT * FROM stafmast;
SNAME SAGE
xiaoming 20EXEC TEST_NID('xiaoming',35);SELECT * FROM stafmast;
SNAME SAGE
xiaoming 35