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