有什么辦法可以讓控制陳述句在頂點中作業嗎?
SET SERVEROUTPUT ON;
DECLARE
v_num NUMBER := 12;
v_word VARCHAR := 'hello';
BEGIN
IF v_num < 10 THEN
DBMS.OUTPUT.PUT_LINE('IF condition executed.');
ELSIF v_word = 'hello' THEN
DBMS.OUTPUT.PUT_LINE('ELSIF condition executed.');
ELSE v_word = 'world' THEN
DBMS_OUTPUT.PUT_LINE('ELSE condition executed.')
END IF;
DBMS_OUTPUT.PUT_LINE('Outside the control statement.');
END;
這是我每次使用控制陳述句時收到的錯誤:

uj5u.com熱心網友回復:
你的代碼有很多小問題。從盡可能小的部分開始,檢查它是否有效,然后添加代碼 - 開始用任何語言撰寫代碼的最佳方式。
問題 1: set serveroutput on在 sql 研討會中不需要。服務器輸出默認啟用,無法切換。試試下面的代碼:
BEGIN
dbms_output.put_line('hello');
END;
并觀察它的作業原理。然后運行這段代碼
set serveroutput on
并且...請注意,您收到了與您報告的相同的錯誤!
問題 2:錯別字錯別字錯別字。下面的每個注釋行都會導致錯誤
DECLARE
v_num NUMBER := 12;
--for VARCHAR, you need to declare the precision
--no error but datatype VARCHAR should NOT be used. Instead use VARCHAR2
--v_word VARCHAR := 'hello';
v_word VARCHAR2(100) := 'hello';
BEGIN
IF v_num < 10 THEN
-- typo: there is no "DBMS.OUTPUT"
--DBMS.OUTPUT.PUT_LINE('IF condition executed.');
DBMS_OUTPUT.PUT_LINE('IF condition executed.');
ELSIF v_word = 'hello' THEN
-- typo: there is no "DBMS.OUTPUT"
--DBMS.OUTPUT.PUT_LINE('ELSIF condition executed.');
DBMS_OUTPUT.PUT_LINE('ELSIF condition executed.');
--No condition needed after the ELSE keyword.
--ELSE v_word = 'world' THEN
ELSE
DBMS_OUTPUT.PUT_LINE('ELSE condition executed.');
END IF;
DBMS_OUTPUT.PUT_LINE('Outside the control statement.');
END;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389868.html
