日期:2014-05-17  浏览次数:21108 次

oracle to_char、to_number的使用问题
本帖最后由 monday707455915 于 2013-09-02 14:27:25 编辑
我在写存储过程的时候写了以下代码:

CREATE OR REPLACE PROCEDURE proc_del_shipplan (
   wl_bay_no    IN     VARCHAR2,
   wl_deck_id   IN     VARCHAR2,
   wl_ship_no   IN     VARCHAR2,
   wl_Return       OUT VARCHAR2)
/*====================================================
  名称:proc_del_shipplan
  参数:wl_bay_no varchar2  输入变量,传入贝位号,一定为偶数,表示一个大贝;
             wl_deck_id varchar2  输入变量,传入甲板上下的标识;
             wl_ship_no varchar2  输入变量,传入船号;
             wl_return    number   输出变量,传出过程执行状态,99--执行成功,--执行失败。

  功能:利用三个传入参数检索ship_plan中的work_queue_no字段;
        然后统计work_queue表中work_queue_no in 上面查询结果的记录的条数,
        若记录为0,则删掉ship_plan中相应的记录,否则不做处理。

   版本:v1.0     wangxf    20130902


=====================================================*/
IS
   wl_row_cnt    NUMBER;
   wl_que_typ    VARCHAR2 (4);
   wl_debug      NUMBER := 0;
   wl_bay_temp   NUMBER;
   wl_b1         ship_plan.bay_no%TYPE;
   wl_b2         ship_plan.bay_no%TYPE;
   wl_b3         ship_plan.bay_no%TYPE;
   wl_b4         ship_plan.bay_no%TYPE;
BEGIN
   wl_bay_temp := TO_NUMBER (wl_bay_no);                         --转换为数字型,方便计算
   wl_b1 := TO_CHAR (wl_bay_temp - 1, '099');
   wl_b2 := TO_CHAR (wl_bay_temp, '099');
  /* wl_b3 := TO_CHAR (wl_bay_temp - 1, '099')
             || '/'
             || TO_CHAR (wl_bay_temp + 1, '099');*/