1

クエリを書きました。問題は、case ステートメントを削除するとエラーが消えることですが、case ステートメントを使用するとエラーが発生し、case ステートメントが必要になります。ここにクエリがあります

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

その後、エラーはなくなりました。case ステートメントが char データを返しているため、エラーが発生していると思います。case ステートメントを char ではなく number を返すように変換するにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

終わり。この質問を iReport セクションに移動するように管理者に依頼します。クエリは正しいのですが、このクエリを iReport に入れるときに何か間違ったことをしたためです。実際、オラクルでは、入力が必要な場合は次のように記述し:inputChannelます。iReport で同じことを行うには、次のようなパラメーターを定義します$P{inputChannel}。だから私が間違っていたのは、私がパラメータを定義したときに$P{inputChannel}、それを設定しなかっDefault value expressionたということ""です。iReportでこのエラーが発生した後。

それを iReport セクションに移動する方法がわかりません。それ以外の場合は、自分で行います。申し訳ありませんが、クエリで何か間違ったことをしている可能性があると思いました。申し訳ありません:(

于 2012-11-22T13:01:30.253 に答える