我有以下代码:
DECLARE
v_oras locations.city%TYPE;
BEGIN
SELECT l.city FROM locations l,departments d WHERE l.location_id = d.location_id AND d.department_id = 30;
END;
/
如何将select分配给之前声明的变量?
答案 0 :(得分:5)
使用SELECT INTO
声明。
DECLARE
v_oras locations.city%TYPE;
BEGIN
SELECT l.city
INTO v_oras
FROM locations l
JOIN departments d ON l.location_id = d.location_id
WHERE d.department_id = 30;
END;
这可以用于从SELECT
语句返回的多个值以及分配的INTO
声明变量。
答案 1 :(得分:3)
DECLARE
v_oras locations.city%TYPE;
BEGIN
SELECT l.city
INTO v_oras
FROM locations l,departments d
WHERE l.location_id = d.location_id
AND d.department_id = 30;
END;
/
答案 2 :(得分:3)
SELECT INTO是最简单的方法。 https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/selectinto_statement.htm
了解一下: 1.如果查询返回多行,则将引发TOO_MANY_ROWS异常。 2.如果查询未返回任何数据,则将引发NO_DATA_FOUND异常。
如果您不能保证这些都不会发生,您可能需要处理这些例外情况。
请参阅上面链接的文档中的使用说明部分。