Q&A

  • 스토어드 프로시져 에러입니다.
select nvl(OM15_JAN.JAN_AMOUNT,0),

nvl(OM15_OUT.TOT_AMOUNT,0)

into V_JJan_Amt,

V_Tot_Amount

From (Select ITEM,

JAN_CNT,

JAN_AMOUNT

From OM15_SHP_TAIL

Where ILJA = (Select Max(ILJA)

From OM15_SHP_TAIL

Where ILJA < L_OM15_SHP_TAIL.ILJA

And CAR_GBN = L_OM15_SHP_TAIL.CAR_GBN

And ITEM = L_OM15_SHP_TAIL.ITEM)

And CAR_GBN = L_OM15_SHP_TAIL.CAR_GBN

And ITEM = L_OM15_SHP_TAIL.ITEM) OM15_JAN,

(Select ITEM,

OUT_TOT,

TOT_AMOUNT

From OM15_SHP_TAIL

Where ILJA = (Select Max(ILJA)

From OM15_SHP_TAIL

Where ILJA < L_OM15_SHP_TAIL.ILJA

And ILJA >= I_SDATE

And CAR_GBN = L_OM15_SHP_TAIL.CAR_GBN

And ITEM = L_OM15_SHP_TAIL.ITEM)

And CAR_GBN = L_OM15_SHP_TAIL.CAR_GBN

And ITEM = L_OM15_SHP_TAIL.ITEM) OM15_OUT

Where OM15_JAN.ITEM = OM15_OUT.ITEM(+);





이렇게 데이타를 가져오는 프로시져를 짰는데 'And ILJA >= I_SDAT'에서 형식이 맞지 않는다는 에러가 납니다.



참고로

L_OM15_SHP_TAIL.ILJA

L_OM15_SHP_TAIL.CAR_GBN

L_OM15_SHP_TAIL.ITEM

이것들은 'L_OM15_SHP_TAIL OM15_SHP_TAIL%ROWTYPE;'이렇게 테이블의 spec을 그대로 가져온 거구요.

I_SDATE는 파라메터로 넘긴 날짜랍니다.

자료형은 모두 날짜형으로 일치하구요.

'L_OM15_SHP_TAIL OM15_SHP_TAIL%ROWTYPE;'를 사용하지 않고 그냥 I_SDATE만 사용하면 에러가 나지 않습니다.

1  COMMENTS
  • Profile
    제덕모 2001.03.25 08:54
    긁적~ 긁적~

    제가 보기엔 별루 이상한건 없는데.. 쩝~

    별다른건 없구요..

    조건문 양쪽 필드들에 대한 형변환을 시켜보시죠?



    WHERE TO_CHAR(ILJA, 'YYYYMMDD') < TO_CHAR(L_OM15_SHP_TAIL.ILJA, 'YYYYMMDD')



    변변한 대답 못드려 죄송합니다.



    꾸뻑~





    이희정 wrote:

    > select nvl(OM15_JAN.JAN_AMOUNT,0),

    > nvl(OM15_OUT.TOT_AMOUNT,0)

    > into V_JJan_Amt,

    > V_Tot_Amount

    > From (Select ITEM,

    > JAN_CNT,

    > JAN_AMOUNT

    > From OM15_SHP_TAIL

    > Where ILJA = (Select Max(ILJA)

    > From OM15_SHP_TAIL

    > Where ILJA < L_OM15_SHP_TAIL.ILJA

    > And CAR_GBN = L_OM15_SHP_TAIL.CAR_GBN

    > And ITEM = L_OM15_SHP_TAIL.ITEM)

    > And CAR_GBN = L_OM15_SHP_TAIL.CAR_GBN

    > And ITEM = L_OM15_SHP_TAIL.ITEM) OM15_JAN,

    > (Select ITEM,

    > OUT_TOT,

    > TOT_AMOUNT

    > From OM15_SHP_TAIL

    > Where ILJA = (Select Max(ILJA)

    > From OM15_SHP_TAIL

    > Where ILJA < L_OM15_SHP_TAIL.ILJA

    > And ILJA >= I_SDATE

    > And CAR_GBN = L_OM15_SHP_TAIL.CAR_GBN

    > And ITEM = L_OM15_SHP_TAIL.ITEM)

    > And CAR_GBN = L_OM15_SHP_TAIL.CAR_GBN

    > And ITEM = L_OM15_SHP_TAIL.ITEM) OM15_OUT

    > Where OM15_JAN.ITEM = OM15_OUT.ITEM(+);

    >

    >

    > 이렇게 데이타를 가져오는 프로시져를 짰는데 'And ILJA >= I_SDAT'에서 형식이 맞지 않는다는 에러가 납니다.

    >

    > 참고로

    > L_OM15_SHP_TAIL.ILJA

    > L_OM15_SHP_TAIL.CAR_GBN

    > L_OM15_SHP_TAIL.ITEM

    > 이것들은 'L_OM15_SHP_TAIL OM15_SHP_TAIL%ROWTYPE;'이렇게 테이블의 spec을 그대로 가져온 거구요.

    > I_SDATE는 파라메터로 넘긴 날짜랍니다.

    > 자료형은 모두 날짜형으로 일치하구요.

    > 'L_OM15_SHP_TAIL OM15_SHP_TAIL%ROWTYPE;'를 사용하지 않고 그냥 I_SDATE만 사용하면 에러가 나지 않습니다.