我創建一個函數,確保所有過時的員工id更新爲總共4個數字。例如,如果一個員工的ID是11,這將是兩個0的級聯:0011 我不斷收到錯誤:PL/SQL嵌套,如果語句
Error(19,4): PLS-00103: Encountered the symbol ";" when
expecting one of the following: if
它在第一嵌套如果標記:
create or replace function ID_RENEWAL(OLD_ID IN VARCHAR2)
return VARCHAR2
is UPDATED_ID VARCHAR2(4);
begin
if (length(OLD_ID) < 4) THEN
UPDATED_ID := '0'||OLD_ID;
if (length(OLD_ID) < 4) THEN
UPDATED_ID := '0'||OLD_ID;
if (length(OLD_ID) = 4) THEN
return (UPDATED_ID);
end if;
end if;
else
UPDATED_ID := SUBSTR(OLD_ID, 1, 4);
return (UPDATED_ID);
end;
有任何想法嗎?
更大的問題是,如果員工的ID用作數據庫中的主鍵,則可能會從數據規範化點中爭奪各種事物W上。相反,請在您的員工表中添加一個屬性,指明員工是否過期(無論如何),並保留其身份。如果您更改ID,它將不再與已使用該ID的任何報告等相匹配。 –