oracle - 调用“VENTAS_MAYOR”时参数的数量或类型错误
问题描述
我做了一个名为 'VENTAS_MAYOR' 的程序,参数 'FECHITA' 类型为 DATE
CREATE OR REPLACE PROCEDURE VENTAS_MAYOR (FECHITA IN DATE)
IS
V_FECHA DATE;
V_CANTIDAD NUMBER;
V_DESCRIPCION VARCHAR2(50);
BEGIN
SELECT
A.FECHAEMISION_BOL,
B.CANTIDAD,
C.DESCRIPCION
INTO
V_FECHA,
V_CANTIDAD,
V_DESCRIPCION
FROM BOLETA A JOIN DETALLE B ON (A.COD_BOLETA = B.COD_DETALLE)
JOIN PRODUCTO C ON (B.COD_DETALLE = C.CODPRODUCTO)
WHERE A.FECHAEMISION_BOL = FECHITA
ORDER BY CANTIDAD DESC;
DBMS_OUTPUT.PUT_LINE(V_CANTIDAD || V_DESCRIPCION);
END VENTAS_MAYOR;
但是当我要使用参数执行函数/过程时,我得到了那个错误......
SET SERVEROUTPUT ON;
EXECUTE VENTAS_MAYOR(05/2019);
我不知道为什么会出现这个错误,我只使用了一个参数....!
解决方案
因为您需要以日期格式传递输入。调用此过程的正确方法是,
SET SERVEROUTPUT ON;
EXECUTE VENTAS_MAYOR(to_date('05/01/2019','mm/dd/yyyy');
另外,请确保表中FECHAEMISION_BOL
列的数据类型BOLETA
。应该是DATE
或TIMESTAMP
。如果不是,则需要修改 WHERE 条件如下 -
to_date(A.FECHAEMISION_BOL,'mm/dd/yyyy') = FECHITA
推荐阅读
- c++ - 在 Linux 的 QT C++ 中设置 QButtons 的透明度
- sql - 试图在 oracle 中完全删除表访问
- javascript - 如何通过javascript更改类的所有元素的字体颜色?
- node.js - 垃圾邮件套接字 io 连接
- codeigniter - 重定向在真实服务器上的 Codeigniter 中不起作用。错误报告但未显示任何错误
- typescript - 为什么不分配它,尽管 Array 是协变的?
- c++ - 带有 shared_ptr 的处理程序中的分段错误
- excel - 带字符串的公式
- azure - 当应用程序在 docker 上运行时,Windows Docker 容器 > 呈现的 PDF 的布局不同
- laravel - 如何安装/使用这个包 = akiyamaSM / larapoll