任何人都有任何想法,为什么系统告诉我PAR_CUR已经开放?一切都工作正常,直到我添加最外面的光标(dup_cur),现在我收到此错误.感谢您的帮助.数据也在下面.
错误报告:
ORA-06511: PL/SQL: cursor already open
ORA-06512: at line 18
ORA-06512: at line 61
06511. 00000 - "PL/SQL: cursor already open"
*Cause: An attempt was made to open a cursor that was already open.
*Action: Close cursor first before reopening.
Run Code Online (Sandbox Code Playgroud)
码:
ACCEPT p_1 prompt 'PLEASE ENTER THE REGION:'
DECLARE
v_child regions.child_name%TYPE := '&p_1';
v_parent regions.parent_name%TYPE;
v_parent2 regions.child_name%TYPE;
v_parent3 regions.child_name%TYPE;
v_count NUMBER := 0;
v_regionnumber NUMBER := 1;
v_parentcount NUMBER := 0;
v_dup regions.child_name%TYPE;
CURSOR reg_cur …Run Code Online (Sandbox Code Playgroud) 我收到错误"PLS-00201:标识符'CHICAGO'必须声明"当我尝试在提示输入用户输入时"请输入区域:"如果我输入"CHICAGO"例如(当然没有引号) )我收到PLS-00201错误.我无法弄清楚为什么 - 任何想法?提前致谢.
ACCEPT p_1 PROMPT 'PLEASE ENTER THE REGION:'
DECLARE
V_CHILD REGIONS.CHILD_NAME%TYPE := &p_1;
V_PARENT REGIONS.PARENT_NAME%TYPE;
CURSOR REG_CUR (p_child_name varchar2) IS
SELECT UPPER(CHILD_NAME)
FROM REGIONS
where CHILD_NAME = p_child_name;
BEGIN
OPEN REG_CUR (V_CHILD);
FETCH reg_cur INTO V_CHILD;
WHILE REG_CUR%FOUND LOOP
DBMS_OUTPUT.PUT_LINE(V_CHILD);
FETCH reg_cur INTO V_CHILD;
END LOOP;
CLOSE REG_CUR;
END;
Run Code Online (Sandbox Code Playgroud)