有如下代码:
SELECT COMPCD, I_NUM,MAX(DECODE(C_TYPE, 'A', ITID)) ITID_A,
       :as_ptid   PTID,
       :as_yymm   PROCYM,
       :as_empno  EMPNO
From (子查询语句)
执行没有问题,但生成的 PTID、PROCYM、EMPNO这三列的类型是String,但长度只为1。使得变量传递过来的值只显示一位。
如何能设置这三列的长度啊?谢谢!

解决方案 »

  1.   

    将PTID、PROCYM、EMPNO三个参数格式化后,在组织的SQL
      

  2.   


    PTID、PROCYM、EMPNO这三个参数传递过来的分别是 '10','200810','S080101'但实际上只得到了'1','2','S'
    Lpad Rpad这两个函数不能实现吧?
      

  3.   


    我试了你说的方法,好使。但我有点想不通,原语句如下:
    SELECT COMPCD, I_NUM,MAX(DECODE(C_TYPE, 'A', ITID)) ITID_A, 
          :as_ptid  PTID, 
          :as_yymm  PROCYM, 
          :as_empno  EMPNO 
    改成:
    SELECT COMPCD, I_NUM,MAX(DECODE(C_TYPE, 'A', ITID)) ITID_A, 
          lpad(:as_ptid,2)  PTID, 
          lpad(:as_yymm,6)  PROCYM, 
          lpad(:as_empno,7)  EMPNO我认为 :as_ptid,:as_yymm,:as_empno变量应该是全部传递过去了,问题应该出在PTID,PROCYM,EMPNO的长度上
           但事实好像是:as_ptid,:as_yymm,:as_empno传递过去的时候就是按长度为1传递的?