我正在檢查輸入長度,看它是否小於7.它應該顯示一條錯誤消息,但下面的代碼不起作用。它出什麼問題了?檢查輸入長度的Oracle SQL過程
CREATE OR REPLACE PROCEDURE prc_staffContact(IN_staffID IN CHAR, IN_staffContact IN VARCHAR) IS
v_staffName VARCHAR(50);
v_staffID CHAR(6);
v_staffContact VARCHAR(11);
BEGIN
SELECT s.staffName, s.staffID, s.staffContact
INTO v_staffName, v_staffID, v_staffContact
FROM staff s
WHERE staffID = IN_staffID;
IF (LENGTH(IN_staffContact) < 7)
THEN
DBMS_OUTPUT.PUT_LINE('Error. Contact number at least 7 digits.');
ELSE
UPDATE staff
SET staffContact = IN_staffContact
WHERE staffID = IN_staffID;
DBMS_OUTPUT.PUT_LINE('=============================================================================');
DBMS_OUTPUT.PUT_LINE('The contact number of [ ' ||v_staffName || ' ] has been updated successfully.');
DBMS_OUTPUT.PUT_LINE('New contact number: [ ' ||v_staffContact || ' ].');
DBMS_OUTPUT.PUT_LINE('=============================================================================');
END IF;
END;
/
定義「不起作用」。你有錯誤嗎?如果是這樣,有什麼錯誤?代碼是否不像您期望的那樣行事?如果是這樣,你看到了什麼行爲?你期望什麼行爲?你通過了哪些輸入程序? –
該過程可以成功創建,我更新它顯示的聯繫號碼[成功完成PL/SQL過程。],但是甚至不檢查我的輸入是否少於7個字符。並且數據也不會更新。 –
對不起,我不確定我的理解。你說你「更新聯繫人號碼」,我假設你運行程序並且程序運行UPDATE語句。但是,你說「數據不會更新」,這似乎意味着相反。你聲稱這個過程並不檢查你輸入的是否少於7個字符,但你沒有提供任何證據 - 你對這個過程有什麼輸入? –