4
下面是PL/SQL一個簡單的程序問題雖然在PostgreSQL中創建函數「錯誤:在或附近有語法錯誤‘ROWTYPE’」
PROCEDURE emp_get_rec (emp_rec IN OUT NOCOPY emp_content%ROWTYPE)
IS
v_cnt NUMBER;
BEGIN
SELECT COUNT(*)
INTO v_cnt
FROM emp_content
WHERE emp_id = emp_rec.emp_id;
IF v_cnt = 1
THEN
SELECT * INTO emp_rec
FROM emp_content
WHERE emp_id = emp_rec.emp_id;
END IF;
END emp_get_rec;
我正努力在PostgreSQL的轉換,
Create or replace function emp_get_rec (emp_rec IN OUT emp_content%ROWTYPE)
AS $BODY$
DECLARE
v_cnt NUMBER;
BEGIN
SELECT COUNT(*)
INTO v_cnt
FROM emp_content
WHERE emp_id = emp_rec.emp_id;
IF v_cnt = 1
THEN
SELECT * INTO emp_rec
FROM emp_content
WHERE emp_id = emp_rec.emp_id;
END IF;
END;
$BODY$ LANGUAGE 'plpgsql';
我面臨以下錯誤:
ERROR: syntax error at or near "ROWTYPE"
如果你有錯誤「或接近‘ROWTYPE’」然後就刪除'%ROWTYPE '(包括百分號):o)在PostgreSQL中,表/視圖名稱可以用作類型名稱,不需要添加任何內容。 – Abelisto
Abeslisto,參數是in和out類型。我需要通過其他函數調用這個特定的函數,這個函數傳遞它的完整記錄。因此,必須使用inoder來提供完整的行%ROWTYPE。所以如果你可以分享一些相同的語法。 – Pooja
Abelisto試圖說的是:'%ROWTYPE'在Postgres中不需要**。您可以將表名稱用作「數據類型」並將完整的記錄傳遞給該函數。 –