2009-08-07 14 views
11

Tôi đang cố gắng xây dựng trang tìm kiếm trong ASP.NET cho phép tôi tìm kiếm tên bảng trong oracle. Khi tôi đặt sql trong kiểm soát sqldatasource nó không nhận ra tham số: Tablename. Làm thế nào để tôi viết lại nó để nó hoạt động?Sử dụng tham số trong mệnh đề tương tự trong oracle

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

Um, tại sao bạn cắt tỉa một biểu thức rõ ràng không có không gian hàng đầu hoặc cuối? –

+0

Tôi đoán nó trở thành một thói quen. Tôi đã gặp phải các trường văn bản và ngày tháng trong cơ sở dữ liệu của chúng tôi với các khoảng trống được thêm vào chúng ..... bạn không thể khớp chúng với nhau mà không có chức năng cắt. –

Trả lời

37

Bạn có thể thay thế

'%:TableName%'

với

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

?

+1

Cảm ơn, đã hoạt động! –

+0

Oracle là trường hợp nhạy cảm btw. :) – Webbanditten

1

Đối với những người có thể quan tâm: Đối với SQL Server nhúng% vào văn bản của tham số như thế này hoạt động: (Phương pháp khác được mô tả ở trên không)

WHERE trim(upper(table_name)) LIKE trim(upper(@TableName)) 
Các vấn đề liên quan