一个存储过程中调用另一个存储过程的问题(sybase数据库)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个存储过程中调用另一个存储过程的问题(sybase数据库)相关的知识,希望对你有一定的参考价值。

我现在有N个存储过程,分别用于校验N个表的字段值是否符合要求。如:--核查证件到期日是否为空
if @CHKIDVALID = ""
begin
insert into CHK_ERRLOG(A,B,C,D,E,F,G)
values(1,"XXXX","XX","XX","@XXX","证件到期日不能为空","1")
if @@error <> 0
begin
select @ERRCODE = '10'
select @ERRTEXT = '插入核查错误信息表失败'
goto mainerr
end
end
N个存储过程中都会存在同样的校验,因此我想把它抽出到一个公共的存储过程,但不知道怎么传递想要的 参数和怎么在一个存储过程调用另一个存储过程。请帮忙给出一个简单易懂的实例。

参考技术A 你是实时校验,还是事后校验?这样效率很低,为什么不做成check追问

数据迁移的时候使用一次而已,不知道您说的check是什么意思?

追答

数据检查,那还是要用过程来检验的

MySQL存储过程中如何遍历查询结果然后调用另一个存储过程?

【中文标题】MySQL存储过程中如何遍历查询结果然后调用另一个存储过程?【英文标题】:How to travers query results and then call the other Stored Procedure in MySQL Stored Procedure? 【发布时间】:2015-08-27 21:56:24 【问题描述】:

现在我可以编写单独的存储过程了。

-- get the total query id result
select id from book where bookprice>10;
-- only pass a single id
call sp_refreshbook(id); 

如何将它们合并在一起?现在我想搜索 id 结果,他们在新的 store 存储过程的结果中调用每个 id 中的 sp_refreshbook

【问题讨论】:

告诉我们sp_refreshbook小狗,我们可以创建一个新的sp_refreshbookLooper 【参考方案1】:

我自己用光标解决了这个问题。

open v_result_cur;
repeat
fetch v_result_cur into v_id;
IF NOT v_done THEN
select v_id; 
END IF;
until v_done end repeat;
close v_result_cur;

【讨论】:

以上是关于一个存储过程中调用另一个存储过程的问题(sybase数据库)的主要内容,如果未能解决你的问题,请参考以下文章

从另一个存储过程调用的存储过程中获取第一个结果集

mssql 存储过程调用另一个存储过程中的结果的方法分享

MySQL 从另一个存储过程调用存储过程

如何在另一个存储过程中调用一个存储过程(PHP 和 mysqli)

一个存储过程中调用另一个存储过程的问题(sybase数据库)

在另一个存储过程中调用时抑制存储过程输出?