gpt4 book ai didi

stored-procedures - Oracle 存储过程的输出

转载 作者:行者123 更新时间:2023-12-04 05:30:49 24 4
gpt4 key购买 nike

我有以下存储过程:

create or replace PROCEDURE A2CountSkus
(v_count out Number )
AS
BEGIN
SELECT count(*)
INTO v_count
FROM a2sku;
EXCEPTION
When Others THEN
RAISE;
END A2CountSkus;

当我运行这个脚本时。
SET SERVEROUTPUT ON 
BEGIN
DBMS_OUTPUT.PUT_LINE('SKU COUNT ' || A2CountSkus);
END;
/

它没有打印输出,而是给出了错误。

最佳答案

首先,通常,如果您有一个命名的 PL/SQL 块,其唯一目的是返回一个值,您将声明一个函数而不是一个过程。如果您已声明 A2CountSkus作为返回数字的函数,您要使用的语法将起作用。

其次,你不想要那个异常(exception)条款——它没有任何用处。它应该被消除。

第三,如果您确实希望块成为一个过程,则调用者需要声明一个可以传递给过程的局部变量,然后在局部变量中打印值。

如果你想声明一个函数

create or replace FUNCTION A2CountSkus
return integer
AS
l_count integer;
BEGIN
SELECT count(*)
INTO l_count
FROM a2sku;
RETURN l_count;
END A2CountSkus;

如果您确定要声明一个过程,则调用者需要类似于
DECLARE
l_count integer;
BEGIN
A2CountSkus( l_count );
DBMS_OUTPUT.PUT_LINE('SKU COUNT ' || l_count);
END;

关于stored-procedures - Oracle 存储过程的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12659545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com