0
我收到以下錯誤試圖在DB2中創建一個存儲過程錯誤SQLCODE -138在DB2做觸發器時
Error report:
DB2 SQL error: SQLCODE: -138, SQLSTATE: 22011, SQLERRMC: null
我的觸發是以下之一:
CREATE TRIGGER INSERT_SERIALNUMBER
AFTER INSERT ON LASERM
REFERENCING NEW ROW AS NROW
FOR EACH ROW MODE DB2SQL
BEGIN
DECLARE ARTICLECODE CHAR(30);
DECLARE POS INT;
SET POS = LOCATE('-', NROW.PROGRAMNAME);
IF POS > 0 THEN
SET ARTICLECODE = SUBSTR(NROW.PROGRAMNAME, 0, POS);
ELSE
SET ARTICLECODE = NROW.PROGRAMNAME;
END IF;
CALL SP_INSERT_SERIALNUMBER(ARTICLECODE, NROW.PCBCODE);
END
按照DB2 SQLCodes列表,-138
-138 THE SECOND OR THIRD ARGUMENT OF THE SUBSTR OR SUBSTRING FUNCTION IS OUT OF RANGE
我想要做的是在找到「 - 」時從另一個字符串中減去一個字符串。例如,代碼是「ART00001-A」,我只想得到「ART00001」。
我不是DB2 SQL語法方面的專家,所以請提前致謝,如果您在代碼中看到問題。在DB2
如果這是關於DB2爲什麼它標記PostgreSQL的? –
@CraigRinger抱歉,它現在已修復。 – Ruben
謝謝。我只是困惑;有時候我們會讓人們假設用另一個數據庫名稱來標記某些東西是另一種說法:「另外,我該如何在其他數據庫中執行此操作?」。 –