如何发送空间" "作为参数值到oracle sql where子句通过.net

时间:2017-04-27 10:54:21

标签: .net oracle

我正在添加参数p_used,如下所示

public Getdet (PKey key)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("SELECT  label ");
            sql.Append(" From table  ");
            sql.Append(" Where used = @p_usage");


            DbAccess mDb = ApplicationContext.CurrentDb;
            Getdet result = null;

            using (IDbCommand cmd = mDb.GetCommand(sql.ToString()))
            {
                cmd.CommandType = CommandType.Text;
                mDb.AddParameter(cmd, "p_used", " ");

                using (IDataReader rdr = mDb.ExecuteReader(cmd))
                {
                        if (rdr.Read())
                        {
                            result = this.LoadThis(rdr);
                        }

                }
            }

            return result;
        }

当读者执行命令时,它会在从.net代码连接到mssql数据库时获取行,但是当从.net代码连接到oracle数据库时不会获取reult。

1 个答案:

答案 0 :(得分:0)

在Oracle "中,双引号用于包围区分大小写的列(或对象)标识符。单'引号用于文本文字。

因此,如果您打算从具有单个空格字符的列中进行选择,如下所示:

CREATE TABLE table_name ( " " NUMBER );
INSERT INTO table_name ( " " ) VALUES ( 1 );

然后使用:

select * from table_name where @p_usage = " ";

您想将它与文本文字进行比较,然后您需要使用:

select * from table_name where @p_usage = ' ';