0

ASP.Net 2 データソースの一部:

  SelectCommand="SELECT BU.P_GEAC_CORP_CD AS Corp_Code,
                        BU.Business_unit  as Abbreviation,
                        CC.DEPTID         AS Cost_Center,
                        CC.DESCR          AS Description
                 FROM fstst.PS_P_CATR_BUDPT_VW CC,
                      fstst.ps_p_bus_unit_cnv  BU 
                 WHERE BU.Business_unit = CC.Business_unit">

これは、動作する GridView をフィードします。ディスプレイは、

CC.DESCR          AS Description

テキスト (非数値) です。

テキストボックスを「contains」フィルターとして使用したい。つまり、ボックスに「Recovery」を入れると、データソースに追加させたい

AND CC.DESCR Like '%Recovery%'

SQLに。その行をハードコーディングすると、機能します。

しかし、私が追加すると

 <SelectParameters>
    <asp:ControlParameter ControlID="Dept_Name"
                          Name="DName"
                          PropertyName="Text"
                          Type="string" />
 </SelectParameters>

SQLを変更しないと、行が返されません。それから私が置くと

AND CC.DESCR Like '%' + :DName + '%'

SQLに入力すると、テキストボックスが空白の場合に結果が得られず、文字を入力するとすぐにORA-01722:無効な番号が表示されます。

4

2 に答える 2

1

「birdlips」さん、お試しいただきありがとうございます。

残念ながら、Oracle サーバーでは最小限のロギングしか有効になっていませんでした。

その上、DBA に訪問しているときに、スタックオーバーフローがなぜか当社の禁止サイトのリストに載っていました。そのため、答えを共有できませんでした。

2 人の DBA も理解できなかったので、これは Oracle についてほとんど知られていない事実であるに違いありませ

+||に変更するとすぐに機能しました。

于 2009-07-29T11:54:15.853 に答える
0

文字列で like ステートメントを使用する場合は、テキストを一重引用符で囲む必要があります。

次のように見える必要があります

AND CC_DESCR LIKE '%VALUE%'
于 2009-07-28T19:08:56.830 に答える