gpt4 book ai didi

oracle - 在 oracle 过程中设置 serveroutput on

转载 作者:行者123 更新时间:2023-12-04 08:56:46 25 4
gpt4 key购买 nike

我创建了一个简单的程序。在这个过程中,我想输出一些数据。然而我放在哪里
设置服务器输出

它说

错误(26,5):PLS-00103:在期望以下之一时遇到符号“SERVEROUTPUT”:。 ( ) , * @ % & = - + at in 是 mod 余数不是 rem => <> 或 != 或 ~= >= <= <> 和或 like2 like4 likec as between ||多集成员子多集

不管我把它放在哪里,它一直在说。

create or replace PROCEDURE discount  

is --- signature

BEGIN --- executable part

update dvd set me_our_price = me_our_price*0.90 WHERE me_release_year = 2011;
update dvd set me_our_price = me_our_price*0.80 WHERE me_release_year = 2010;

update bluray set me_our_price = me_our_price*0.95 WHERE me_release_year = 2011;
update bluray set me_our_price = me_our_price*0.90 WHERE me_release_year = 2010;


DBMS_OUTPUT.PUT_LINE(' Blurays ');
for i in (
SELECT e.mo_title, e.mo_bluray.me_list_price as me_list_price, e.mo_bluray.me_our_price as me_our_price FROM movie e where e.mo_bluray is not null
)
loop

DBMS_OUTPUT.PUT_LINE(i.mo_title|| ' ' || i.me_list_price|| ' ' || i.me_list_price);

end loop;

DBMS_OUTPUT.PUT_LINE(' DVDs ');
for i in (
set serveroutput on
SELECT e.mo_title, e.mo_dvd.me_list_price as me_list_price, e.mo_dvd.me_our_price as me_our_price FROM movie e where e.mo_dvd is not null
)
loop
DBMS_OUTPUT.PUT_LINE(i.mo_title|| ' ' || i.me_list_price|| ' ' || i.me_list_price);
end loop;


END discount;

最佳答案

为了理解“SET SERVEROUTPUT ON”的用法,我举个例子

DECLARE
a number(10) :=10;
BEGIN
dbms_output.put_line(a) ;
dbms_output.put_line('Hello World ! ') ;
END ;

有输出:PL/SQl 程序成功完成,即没有预期的输出

背后的主要原因是,无论我们通过什么 dbms_output.put_line('ARGUMENT'/VALUES) 即 ARGUMENT/VALUES ,内部存储在 SGA(共享全局区域)内存区域的缓冲区内,最多 2000 字节。

*注意:***但是应该注意,只有在我们使用 **dbms_output 时才会创建此缓冲区包裹。并且我们只需要为一个 session 设置一次环境变量!!

为了从该缓冲区中获取它,我们需要为 session 设置环境变量。我们正在设置服务器输出(因为它的命名法)让初学者感到很困惑,但不幸的是,它不是那样的。使用 设置服务器输出 只是告诉 PL/SQL 引擎

*嘿,请打印我将在 dbms_output.put_line 中传递的 ARGUMENT/VALUES
然后 PL/SQl 运行时引擎在主控制台上打印参数。

我想我对你们都很清楚。祝你一切顺利 。
的建筑结构了解更多Oracle 服务器引擎 你可以在 Quora 上看到我的回答 http://qr.ae/RojAn8

并回答您的问题“一个人应该在 session 开始时使用 SET SERVER OUTPUT。”

关于oracle - 在 oracle 过程中设置 serveroutput on,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114220/

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