在咨询3列信息时,ORACLE PL / SQL错误与存储过程有关
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在咨询3列信息时,ORACLE PL / SQL错误与存储过程有关相关的知识,希望对你有一定的参考价值。
我创建了一个存储过程,以便从3列中检索一些信息。我可以编译它没有错误,但当我做EXEC
我得到一个错误:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:
%s"
这是PL / SQL:
CREATE OR REPLACE PROCEDURE consult_employee(
e_id IN OUT EMPLOYEES.EMPLOYEE_ID%TYPE,
e_nom OUT EMPLOYEES.FIRST_NAME%TYPE,
e_job OUT EMPLOYEES.JOB_ID%TYPE
) IS
BEGIN
-- Consult the employee
SELECT employee_id, first_name, job_id
INTO e_id, e_nom, e_job
FROM employees
WHERE employee_id = e_id;
DBMS_OUTPUT.PUT_LINE('Your consult is: ' || e_id || e_nom || e_job);
END;
当我执行下一个时,我收到错误:
EXEC consult_employee(102);
这就是我的桌子上的内容:
EMPLOYEE_ID | FIRST_NAME | JOB_ID
____________|____________|________
102 | Lex | AD_VP
答案
您的过程需要三个参数,但您只传递一个参数。您传递的所有三个参数都应该是变量,而不是常量,因为它们是IN OUT或OUT参数。
所以你应该做的事情如下:
DECLARE
nEmp_id NUMBER := 102;
strFirst_name VARCHAR2(100);
nJob_id NUMBER;
BEGIN
CONSULT_EMPLOYEE(nEmp_id, strFirst_name, nJob_id);
DBMS_OUTPUT.PUT_LINE('EMP_ID=' || nEmp_id ||
' FIRST_NAME=''' || strFirst_name || '''' ||
' JOB_ID=' || nJob_id);
END;
祝你好运
以上是关于在咨询3列信息时,ORACLE PL / SQL错误与存储过程有关的主要内容,如果未能解决你的问题,请参考以下文章
Oracle SQL 或 PL/SQL:如何仅在上升趋势或下降趋势结束时识别烛台形态并在列中设置标志?
oracle forms builder pl/sql - 访问从其他列派生的列