如何为变量选择一个变量?

时间:2016-01-11 23:50:00

标签: sql oracle

我有以下代码:

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分配给之前声明的变量?

3 个答案:

答案 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异常。

如果您不能保证这些都不会发生,您可能需要处理这些例外情况。

请参阅上面链接的文档中的使用说明部分。