【问题标题】:PLS-00049: bad bind variable 'D_DEPT_ID' in toadPLS-00049:蟾蜍中的错误绑定变量“D_DEPT_ID”
【发布时间】:2018-07-16 13:50:32
【问题描述】:

我在 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;

【问题讨论】:

  • 您的要求是什么?为什么在调用过程时不使用过程参数并接受用户输入?
  • @Kaushik Nayak 我希望用户在运行时输入值

标签: oracle plsql


【解决方案1】:

您不能将绑定变量放在过程或函数代码中。要完成您的任务,您必须在运行时将值作为过程的参数传递。

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 2019-06-05
    • 2017-08-16
    • 2015-08-09
    • 1970-01-01
    • 2020-10-22
    • 2022-06-13
    相关资源
    最近更新 更多