以下代码是一个function的一部分:
片段A:
SELECT
a,b
INTO
c,d
FROM tableA
WHERE a.id = '001'
AND ROWNUM =1;
和
片段B:FOR REC IN ( SELECT a,b
INTO c,d
FROM tableA
WHERE a.id = '001'
)
LOOP
c := REC.a;
d := b;
END LOOP;
有什么区别???
现在的问题是这样子的:
1.在片段B之前加上片段A,结果不正确
2.单独使用片段B是正确的,单独使用片段A也是不正确的。
3.没有报错,无论哪一种。1. 上述代码中:SELECT a,b INTO c,d FROM tableA WHERE a.id = '001'结果最多只可能有一条(id为主键)
2. c.d 为function 的两个变量。a,b为tableA的两个普通字段。
片段A:
SELECT
a,b
INTO
c,d
FROM tableA
WHERE a.id = '001'
AND ROWNUM =1;
和
片段B:FOR REC IN ( SELECT a,b
INTO c,d
FROM tableA
WHERE a.id = '001'
)
LOOP
c := REC.a;
d := b;
END LOOP;
有什么区别???
现在的问题是这样子的:
1.在片段B之前加上片段A,结果不正确
2.单独使用片段B是正确的,单独使用片段A也是不正确的。
3.没有报错,无论哪一种。1. 上述代码中:SELECT a,b INTO c,d FROM tableA WHERE a.id = '001'结果最多只可能有一条(id为主键)
2. c.d 为function 的两个变量。a,b为tableA的两个普通字段。
FOR REC IN ( SELECT a,b
-- INTO c,d这个地方就不可以用into 了
FROM tableA
WHERE a.id = '001'
)
LOOP
c := REC.a;
d := REC.b;--这个地方也应是REC.b才对呀
END LOOP;