2009-08-07 6 views
11

私はoracleのテーブル名を検索できるASP.NETの検索ページを作成しようとしています。 sqldatasourceコントロールにsqlを配置すると、Tablenameというパラメータは認識されません。これを動作させるためには、どのように書き直す必要がありますか?oracleのlike節のパラメータを使用します。

SELECT Owner, Table_name, Num_Rows, Tablespace_name 
FROM all_tables 
WHERE trim(upper(table_name)) LIKE trim(upper('%:TableName%')) 
+0

あの、なぜあなたは式をトリミングしていること明らかに先頭または末尾にスペースはありませんか? –

+0

私はそれが習慣になったと思う。私はデータベースにテキストと日付のフィールドを追加しました。それらにはスペースが追加されています。トリム機能なしでは一致させることはできません。 –

答えて

37

あなたは

'%' || :TableName || '%'

'%:TableName%'

を置き換えることはできますか?興味があるかもしれないものについて

+1

ありがとうございました! –

+0

Oracleでは大文字と小文字が区別されます。 :) – Webbanditten

1

:このようなパラメータのテキストに%を埋め込むSQL Serverの場合は動作します(上記の他の方法にはありません)

WHERE trim(upper(table_name)) LIKE trim(upper(@TableName)) 
関連する問題