Sql 如何返回函数中已删除的行数(delete all语句)?

Sql 如何返回函数中已删除的行数(delete all语句)?,sql,oracle,plsql,Sql,Oracle,Plsql,我目前正在尝试在pl/sql中创建一个函数,该函数从Customer表中删除所有Customer行,然后返回已删除的总行的值。然后是一个过程来运行这个过程,但是当前我在DOPL中得到的结果(成功时)是“删除所有客户行删除”,我如何更改它,以便过程中的DOPL在函数中返回删除行的数量值,例如“删除5行” 这是我当前的代码(提前感谢): 您没有用任何东西填充v_count变量,因此它返回空值 有一个Oracle内置的,SQL%ROWCOUNT,它给出了受前面DML语句影响的行数。因此,您只需将删除函

我目前正在尝试在pl/sql中创建一个函数,该函数从Customer表中删除所有Customer行,然后返回已删除的总行的值。然后是一个过程来运行这个过程,但是当前我在DOPL中得到的结果(成功时)是“删除所有客户行删除”,我如何更改它,以便过程中的DOPL在函数中返回删除行的数量值,例如“删除5行”

这是我当前的代码(提前感谢):


您没有用任何东西填充
v_count
变量,因此它返回空值

有一个Oracle内置的,
SQL%ROWCOUNT
,它给出了受前面DML语句影响的行数。因此,您只需将删除函数更改为:

CREATE OR REPLACE FUNCTION DELETE_ALL_CUSTOMERS_FROM_DB
 RETURN NUMBER 
AS 
BEGIN
     DELETE FROM Customer;
     RETURN sql%rowcount;
EXCEPTION
     WHEN OTHERS THEN
         RAISE_APPLICATION_ERROR(-20000, SQLERRM);
END;
/ 

您没有用任何东西填充
v_count
变量,因此它返回空值

有一个Oracle内置的,
SQL%ROWCOUNT
,它给出了受前面DML语句影响的行数。因此,您只需将删除函数更改为:

CREATE OR REPLACE FUNCTION DELETE_ALL_CUSTOMERS_FROM_DB
 RETURN NUMBER 
AS 
BEGIN
     DELETE FROM Customer;
     RETURN sql%rowcount;
EXCEPTION
     WHEN OTHERS THEN
         RAISE_APPLICATION_ERROR(-20000, SQLERRM);
END;
/ 

您没有编写MySQL代码,因此请不要使用
[MySQL]
标记。抱歉:(下次不会添加此项,有没有办法删除此帖子中的标记?您可以编辑自己的问题。哦,是的,现在可以看到它-看起来您已经进行了更改-谢谢!对不起,有点太傻了。您没有编写MySQL代码,所以请不要使用
[MySQL]
标记。抱歉:(下次不会添加此内容,我有没有办法删除此帖子中的标签?您可以编辑自己的问题。哦,是的,现在可以看到它-看起来您已经进行了更改-谢谢!对不起,有点太傻了。非常感谢:)为了学习起见,您也可以使用变量执行此操作吗?当然,您可以将
sql%rowcount
分配给变量非常感谢:)为了学习起见,您也可以使用变量执行此操作吗?当然,您可以将
sql%rowcount
分配给变量