2009-08-07 12 views
11

Sto cercando di creare una pagina di ricerca in ASP.NET che mi consenta di cercare i nomi di tabella in Oracle. Quando inserisco lo sql nel controllo sqldatasource, non riconosce il parametro: Nome tabella. Come devo riscrivere questo in modo che funzioni?Utilizza parametro in clausola simile in oracle

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

Um, perché stai rifilatura un'espressione che ovviamente non ha spazi iniziali o finali? –

+0

Immagino sia diventata un'abitudine. Ho incontrato campi di testo e data nel nostro database con spazi aggiunti a loro ..... non è possibile abbinarli senza la funzione di ritaglio. –

risposta

37

Potete sostituire

'%:TableName%'

con

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

?

+1

Grazie, ha funzionato! –

+0

Oracle è case sensitive btw. :) – Webbanditten

1

Per coloro che potrebbero essere interessati: Per SQL Server incorporare il% in testo del parametro come questo funziona: (L'altro metodo sopra descritto non)

WHERE trim(upper(table_name)) LIKE trim(upper(@TableName)) 
Problemi correlati