有如下代码:
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。使得变量传递过来的值只显示一位。
如何能设置这三列的长度啊?谢谢!
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。使得变量传递过来的值只显示一位。
如何能设置这三列的长度啊?谢谢!
PTID、PROCYM、EMPNO这三个参数传递过来的分别是 '10','200810','S080101'但实际上只得到了'1','2','S'
Lpad Rpad这两个函数不能实现吧?
我试了你说的方法,好使。但我有点想不通,原语句如下:
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传递的?