如何在oracle存储过程中使用select语句

时间:2014-07-09 11:07:11

标签: oracle

CREATE OR REPLACE PROCEDURE get_pop1()
DECLARE
ROUTERNAME varchar2(100);
BEGIN
SELECT ROUTERNAME INTO routername FROM INTERFACE_ATTLAS;
END;

我尝试执行此过程。但它给出了错误。请有人告诉我,我做错了什么。

2 个答案:

答案 0 :(得分:0)

可能是变量和列名之间存在冲突。最简单的解决方案是重命名变量。

没有参数的程序也不需要括号。 correct syntax类似于:

CREATE OR REPLACE PROCEDURE get_pop1
AS
    ROUTERNAME_V varchar2(100);
BEGIN
    SELECT ROUTERNAME
        INTO ROUTERNAME_V
        FROM INTERFACE_ATTLAS
        WHERE ROWNUM = 1;
END;

答案 1 :(得分:0)

摆脱括号"()"并将DECLARE重命名为ISAS

CREATE OR REPLACE PROCEDURE get_pop1
is
  ROUTERNAME varchar2(100);
BEGIN
  SELECT 'blah-blah-blah' INTO routername FROM dual;
  dbms_output.put_line(routername);
END get_pop1;

begin
  get_pop1();
end;

blah-blah-blah

Statement processed.


0.00 seconds

使用您的代码更改过程的主体。如果ROUTERNAME在表routername中不唯一,则可能需要具有表变量。在这种情况下,要从表中读取,请使用BULK COLLECT INTO而不是INTO