下面是PL / SQL中的一个简单过程
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';
我正面临以下错误:
错误:语法错误在或附近" ROWTYPE"
答案 0 :(得分:1)
每当您创建表时,也会自动创建一个复合类型,其名称与表的名称相同,以表示表的行类型。
因此,您可以使用表名作为类型名称,在语法上它表示类型:
create or replace function emp_get_rec (emp_rec IN OUT emp_content)