create or replace procedure SBGL_DELRECORD
(
v_tablename IN VARCHAR2 DEFAULT NULL,
v_Fieldname IN VARCHAR2 DEFAULT NULL,
v_FieldValue IN VARCHAR2 DEFAULT NULL,
v_ischeck IN VARCHAR2 DEFAULT NULL,
v_msgs out VARCHAR2
)
AS
v_sql VARCHAR2(2000);
begin
IF v_ischeck=-1 THEN
v_msgs:='该单据已经审核,不能删除!';
RETURN;
END IF;
v_sql := 'update '||v_tablename||' set del=1 where '||v_Fieldname||'='''||v_FieldValue||'''';
EXECUTE IMMEDIATE v_sql;
commit;
v_msgs:='删除单据成功!';
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
v_msgs := '删除单据出错!';
RETURN;
end SBGL_DELRECORD;
初用oracle写了个返回值的存储过程,怎么调用?求教。
(
v_tablename IN VARCHAR2 DEFAULT NULL,
v_Fieldname IN VARCHAR2 DEFAULT NULL,
v_FieldValue IN VARCHAR2 DEFAULT NULL,
v_ischeck IN VARCHAR2 DEFAULT NULL,
v_msgs out VARCHAR2
)
AS
v_sql VARCHAR2(2000);
begin
IF v_ischeck=-1 THEN
v_msgs:='该单据已经审核,不能删除!';
RETURN;
END IF;
v_sql := 'update '||v_tablename||' set del=1 where '||v_Fieldname||'='''||v_FieldValue||'''';
EXECUTE IMMEDIATE v_sql;
commit;
v_msgs:='删除单据成功!';
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
v_msgs := '删除单据出错!';
RETURN;
end SBGL_DELRECORD;
初用oracle写了个返回值的存储过程,怎么调用?求教。
l_tname VARCHAR2(30);
l_fname VARCHAR2(100);
l_fvalue VARCHAR2(20);
l_ischeck VARCHAR2(10);
l_msgs VARCHAR2(100);
BEGIN
l_tname := 'MYTNAME';
l_fname := 'MYCOL';
l_fvalue := 'MYFVALUE';
l_ischeck := '-1';
SBGL_DELRECORD(l_tname, l_fname, l_fvalue, l_ischeck, l_msgs);
DBMS_OUTPUT.PUT_LINE(l_msgs);
END;
/
或者如楼上所说的用PL SQL DEVELOPER工具,右键选择该存储过程,点击TEST,然后输入变量名
最好就在PL/SQL中测试
2 最方便
3 根据系统决定