Oracle:如何在ODP.Net连接字符串值中允许前导/尾随空格?

时间:2013-11-20 12:16:26

标签: c# .net oracle odp.net

我的C#app使用以下连接字符串格式连接到Oracle:

Data Source=tnsEntry;User Id=myUsername;Password=myPassword;

现在,如果用户标识以' abc'(不包括引号)之类的空格开头,那么如何在连接字符串中指定它?将它放在单引号/双引号中会导致错误Ora-1017:用户名/密码无效。

使用Oracle.DataAccess,版本= 2.112.3.0。连接到Oracle 11g。

最小样本

中可以重复使用
using System;
using Oracle.DataAccess.Client;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            var con = new OracleConnection("User Id=\" abc\";Password=system05;Data Source=REFUPG141");
            try
            {
                con.Open();
                Console.WriteLine("connected.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

双引号围绕用户名为我工作:

请注意,在创建用户时需要使用双引号:

SQL> create user "  DUMMY" identified by "pass";

User created.

SQL> grant connect, create session to "  DUMMY";

Grant succeeded.

SQL> conn "  DUMMY"/"pass";
Connected.

然后在.NET中我使用了这个连接字符串并且工作正常:

Data Source=localhost/mySid;User Id="  DUMMY";Password=pass

[编辑]重要信息:

我正在使用Managed .NET Oracle Provider