用varchar2也不行呀! 用 create procedure test1 (na varchar2) is begin ... end; 也不行呀! 真是郁闷!,还有一大堆for Sybase的要转成for Oracle的呢,如果这个问题解决了就好办了.
The following statement performed under SQL*PLUSCREATE TABLE TEST(NAME VARCHAR2(8), AGE INT); INSERT INTO TEST VALUES('ANMMY', 40); INSERT INTO TEST VALUES('MAC', 333);CREATE OR REPLACE PROCEDURE TEST1(NA TEST.NAME%TYPE) AS BEGIN DELETE FROM TEST WHERE NAME = NA; END; ------------------------------------------------------- EXECUTE TEST1('MAC'); COMMIT;All are passed.
CREATE OR REPLACE PROCEDURE TEST1(NA VARCHAR2) AS BEGIN DELETE FROM TEST WHERE NAME = NA; END; / 可以,过程没问题! BEGIN -- Test statements here TEST1('MAC'); commit; END;调用也可以!把EXECUTE去掉就行了!:)
test1('anmmy');
end;
/
create procedure test1 (na in varchar2)
as
begin
delete from test where name = na;
end;
用exec test1 ('anmmy')
exec test1 'anmmy'也不行,我再用用varchar2和is试试吧,多谢大家!!!:)
用
create procedure test1 (na varchar2)
is
begin
...
end;
也不行呀!
真是郁闷!,还有一大堆for Sybase的要转成for Oracle的呢,如果这个问题解决了就好办了.
INSERT INTO TEST VALUES('ANMMY', 40);
INSERT INTO TEST VALUES('MAC', 333);CREATE OR REPLACE PROCEDURE TEST1(NA TEST.NAME%TYPE) AS
BEGIN
DELETE FROM TEST WHERE NAME = NA;
END;
-------------------------------------------------------
EXECUTE TEST1('MAC');
COMMIT;All are passed.
BEGIN
DELETE FROM TEST WHERE NAME = NA;
END;
/
可以,过程没问题! BEGIN
-- Test statements here
TEST1('MAC');
commit;
END;调用也可以!把EXECUTE去掉就行了!:)