我在Toad for Oracle中用替换变量创建了过程,但是它给了我错误
“ PLS-00049:错误的绑定变量'D_DEPT_ID'”
程序代码:
CREATE OR REPLACE PROCEDURE add_dept
IS
dept_id dept.deptno%TYPE;
dept_name dept.dname%TYPE;
BEGIN
dept_id := :d_dept_id;
dept_name := ':d_ name';
INSERT INTO dept(deptno,dname) VALUES (dept_id,dept_name);
DBMS_OUTPUT.PUT_LINE (' INSERTED ' || SQL%ROWCOUNT || ' ROW ');
END;
答案 0 :(得分:2)
您不能将绑定变量放在过程或函数代码内。要完成任务,必须在运行时将值作为过程的参数传递进来。
CREATE OR REPLACE PROCEDURE add_dept(dept_id dept.deptno%TYPE, dept_name dept.dname%TYPE) IS
BEGIN
INSERT INTO dept(deptno,dname) VALUES (dept_id,dept_name);
DBMS_OUTPUT.PUT_LINE (' INSERTED ' || SQL%ROWCOUNT || ' ROW ');
END;
然后在运行时,在您的匿名块或调用代码中,从最终用户传递值。
BEGIN
add_date(:d_dept_id, :d_dept_name);
END;