CREATE OR REPLACE PROCEDURE get_pop1()
DECLARE
ROUTERNAME varchar2(100);
BEGIN
SELECT ROUTERNAME INTO routername FROM INTERFACE_ATTLAS;
END;
我尝试执行此过程。但它给出了错误。请有人告诉我,我做错了什么。
答案 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
重命名为IS
或AS
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
。