0
我試圖使我的存儲過程工作的問題。簡單更新設置postgres存儲過程
這是我的問題:
我有一個表,名爲a
的列,在這一欄中有電話號碼。
我要補充0039
如果數字開頭1
,8
,3
或0
(或保留原樣如果沒有),並存儲在B列的新號碼。
這是我的代碼:
CREATE OR REPLACE FUNCTION upg_table() RETURNS void AS $$
BEGIN
IF (substring(a from 0 for 2)!='00')
AND (substring(a from 0 for 1)='3')
OR (substring(a from 0 for 1)='0')
OR (substring(a from 0 for 1)='1')
OR (substring(a from 0 for 1)='8')
THEN
UPDATE cdr
SET
b = '0039'||a;
ELSE
UPDATE cdr
SET
b = a;
END IF;
END;
$$ LANGUAGE plpgsql;
的錯誤是:
ERROR: the column "a" does not exist
ROW 1: SELECT substring(a from 0 for 2)!='00' AND ...
乍一看,你的布爾邏輯看起來不合時宜。你應該在你的想法中加上括號。像'(sub1 AND sub2)或者(sub3 AND sub4)' – paqogomez 2015-03-31 16:03:32
你的錯誤來自於你不從任何地方聲明或拉扯'a'的事實。我認爲你需要將你的if語句改成'select case'。 – paqogomez 2015-03-31 16:05:47
在你的'if'語句中,你只能引用變量或參數。但是,您既沒有名爲'a'的變量也沒有名爲'a'的參數 – 2015-03-31 16:15:53