Oracle SQL过程错误我无法调试

时间:2015-02-18 16:22:10

标签: sql oracle debugging plsql

我成功创建了以下程序,但是当我运行它时,我得到ORA-01422:精确提取返回超过请求的行数错误。 任何人都可以帮助解决我的问题。感谢

CREATE OR REPLACE PROCEDURE proc_create_new_user AUTHID CURRENT_USER IS
    vc_username VARCHAR2(50);
    vc_new_user VARCHAR2(100);
BEGIN
    SELECT username
    INTO vc_username FROM marketing;

FOR i IN 1..3 LOOP
    vc_new_user:=
     'CREATE USER '||vc_username||' IDENTIFIED BY password'||(i);
    DBMS_OUTPUT.PUT_LINE('USER '||vc_new_user||' HAS BEEN CREATED');
    EXECUTE IMMEDIATE vc_new_user;
END LOOP;
END proc_create_new_user;
/

 EXECUTE proc_create_new_user;


error: ORA-01422: exact fetch returns more than requested number of rows

1 个答案:

答案 0 :(得分:3)

您的选择为您提供了多条记录,您尝试将其保存在只能包含一个值的变量中。尝试在select语句中使用WHERE子句。

SELECT username
INTO vc_username FROM marketing
WHERE userid = '1234';