1.情景展示
在plsql中如何使用dbms_output輸出執行結果?
如上圖所示,運行后報錯:ora-00922
2.原因分析
set serveroutput on 語句的作用是:打開Oracle自帶的輸出方法dbms_output,在執行以后,使用dbms_output方法可以輸出信息。
但是,它是sqlplus語句,不是sql語句,所以不能在sql window中使用,該命令不是寫在pl/sql中的,而是在sql/plus中執行。SQL WINDOW里面可以不加set serveroutput on就可以使用dbms_output。
3.解決方案
也就是說,在plsql中,不能也不用調用這句話,是多余的,畫蛇添足!網絡上的代碼真是嚇人!
刪掉這行代碼
declare v_score number := &score; begin if v_score >= 80 then dbms_output.put_line('優秀'); elsif v_score >= 60 then dbms_output.put_line('良好'); else dbms_output.put_line('不好'); end if; end;
執行
執行結束
到這里,很多人都傻眼了,搞什么,結果怎么沒有打印出來?
你剛在實在左側的SQL視圖中,切換到輸出視圖就能看到結果啦。
這,才是在plsql中使用的正確用法。
注意:
declare關鍵字前面可以加注釋,但是注釋內容不能含中文!
只要注釋中包含中文,必報這個錯,所以要么不用注釋,要么加英文注釋
存儲過程也是這樣查看輸出結果。