쿼리를 작성했습니다. 문제는 내가 case 문을 제거한 다음 오류가 사라지지만 case 문을 사용하면 오류가 발생하고 case 문이 필요합니다. 다음은이 경우 오류의 쿼리오류가 발생했습니다 : 오류 : SQL 문제 : 일치하지 않는 데이터 유형 : 예상 번호가 CHAR을 받았습니다
Select
b.branch_name AS "BRANCHES", --varchar2(100 byte)
(
Select count(temp.loan_acct_no) --varchar2(30 byte)
From
(
Select *
From
Losa_app app
inner join
losa_cust lc
on
(lc.app_ref_no = app.app_ref_no) --varchar2(20 byte)
and
lc.app_joint_T= 'P' --varchar2(10 byte)
inner join
losa_facilities lf
on
(lf.app_ref_no = app.app_ref_no) --varchar2(20 byte)
)
temp
where
temp.attend_branch = b.branch_id --NUMBER(10, 0)
) AS "No.of Account"
From
code_branch b
where
b.branch_code1 --varchar2(16 byte)
like
case :inputChannel
when 'AIBB' Then '0347%' --AIBB or ABB (varchar2(10 byte))
When 'ABB' Then '0232%'
end
제공하지만, 내가 선을 제거하면
where
b.branch_code1
like
case :inputChannel
when 'AIBB' Then '0347%'
When 'ABB' Then '0232%'
end
그런 다음 사라 오류가 발생했습니다. 내 케이스 문이 문자 데이터를 반환하기 때문에 오류가오고 있다고 생각합니다. 어떻게하면 char 대신 number를 반환하도록 case 문을 변환 할 수 있습니까?
감사합니다.
관련된 모든 컬럼의 데이터 타입을 지정할 수 있다면 도움이 될 것이다. 또한,': inputChannel' 파라미터에 대한 더 많은 정보를 제공해야한다. . 어떤 환경에서이 SQL을 실행하고 있습니까? (매개 변수 사용으로 인해 관련이 있습니다.) – Codo
Oracle에서 실행 중입니다. 실제로 sqlDeveloper에서 쿼리를 실행하면 정상적으로 실행됩니다. 그러나이 쿼리를 iReport에 넣으면 오류가 온다. 그리고 위에서 언급 한 where 절을 제거한 후'No of Account'의 데이터 형식은'java.math.Bigdecimal'입니다. 데이터 형식을 추가 했으므로 지금 확인할 수 있습니다. – Basit