我正在处理一个存储过程,该过程在游标内部具有以下基于日期的选择查询,如下面的
CURSOR inv_cur ( v_hotel_id IN NUMBER, v_stay_date IN DATE)
IS
SELECT id,
start_date ,
room_count ,
booked_room_count
FROM inventory
WHERE hotel_id = v_hotel_id
AND TRUNC( start_date ) = TRUNC(v_stay_date);
由于某种原因,它不起作用,我没有得到记录。但是当我在没有日期比较的情况下执行或者以下面的独立方式执行查询时,它可以正常工作
SELECT id,
start_date ,
room_count ,
booked_room_count
FROM inventory
WHERE hotel_id = 1509622
AND TRUNC( start_date ) = TO_DATE('08-03-18', 'dd-mm-yy');
这是我调用游标调用的方式
PROCEDURE (.....)
IS
v_date_temp DATE;
BEGIN
v_date_temp := p_check_in_date;
FOR inventory_rec IN inv_cur
(
v_hotel_id, v_room_type_id, v_date_temp
)
LOOP
v_room_count := inventory_rec.room_count;
v_book_room_count := NVL ( inventory_rec.booked_room_count,0 );
v_inventory_id := inventory_rec.id;
dbms_output.put_line(' Inv id' || v_inventory_id);
END LOOP;
由于没有返回记录,因此它不会进入循环内部。 我认为日期比较有问题。有人能帮助我弄清楚这个令人费解的问题与我的日期比较吗?