很简单的 create or replace procedure pinsert(value1 in string) is begin insert into TableA values (value1); commit; end pinsert;
!如果那样插入,我还不如写一个insert的脚本来执行
创建一个包(p1)中声明: type t_cursor is ref cursor;然后创建你的过程: create or replace procedure dsf (c1 in out p1.t_cursor) as begin open c1 for select * from tbname; end;如果你想在过程之前得到结果集也可以,然后在传入到过程中
各位,我说的是传入一个数据集,不是一条记录,更不是单个的 string.
学习!不知道oracle有什么好的办法!
--创建过程 create or replace procedure P_INSERT( pincMAKERCD IN CHAR, potcRETURN OUT CHAR ) is begin BEGIN INSERT INTO TEMPA(KKKNO,MAKERCD) SELECT KKKNO,MAKERCD FROM TEMPB WHERE MAKERCD=pincMAKERCD; potcRETURN:='1'; END ; EXCEPTION WHEN OTHERS THEN potcRETURN:='0'; end P_INSERT; --调用过程 DECLARE pincMAKERCD char(5):= '00012'; potcRETURN char(1) ;
BEGIN P_INSERT(pincMAKERCD,potcRETURN); DBMS_OUTPUT.PUT_LINE(potcRETURN);
create or replace procedure pinsert(value1 in string)
is
begin
insert into TableA values (value1);
commit;
end pinsert;
type t_cursor is ref cursor;然后创建你的过程:
create or replace procedure dsf (c1 in out p1.t_cursor) as
begin
open c1 for select * from tbname;
end;如果你想在过程之前得到结果集也可以,然后在传入到过程中
create or replace procedure P_INSERT(
pincMAKERCD IN CHAR,
potcRETURN OUT CHAR ) is
begin
BEGIN
INSERT INTO TEMPA(KKKNO,MAKERCD)
SELECT KKKNO,MAKERCD
FROM TEMPB
WHERE MAKERCD=pincMAKERCD;
potcRETURN:='1';
END ;
EXCEPTION
WHEN OTHERS THEN
potcRETURN:='0';
end P_INSERT;
--调用过程 DECLARE
pincMAKERCD char(5):= '00012';
potcRETURN char(1) ;
BEGIN
P_INSERT(pincMAKERCD,potcRETURN);
DBMS_OUTPUT.PUT_LINE(potcRETURN);
END;