【问题标题】:Use parameter in like clause in oracle在oracle的like子句中使用参数
【发布时间】:2010-11-17 17:17:55
【问题描述】:

我正在尝试在 ASP.NET 中构建一个搜索页面,它允许我在 oracle 中搜索表名。当我将 sql 放在 sqldatasource 控件中时,它无法识别参数:Tablename。我需要如何重写它才能正常工作?

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

【问题讨论】:

  • 嗯,你为什么要修剪一个明显没有前导或尾随空格的表达式?
  • 我想这已经成为一种习惯了。我在我们的数据库中遇到了带有空格的文本和日期字段......如果没有修剪功能,您将无法匹配它们。

标签: asp.net oracle


【解决方案1】:

你能换吗

'%:TableName%'

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

?

【讨论】:

  • Oracle 是区分大小写的顺便说一句。 :)
  • 谢谢,节省了很多时间。工作!!
【解决方案2】:

对于那些可能感兴趣的人:对于像这样将 % 嵌入到参数文本中的 SQL Server:(上述其他方法无效)

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

【讨论】:

    猜你喜欢
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2017-10-22
    • 2015-12-03
    相关资源
    最近更新 更多