我的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);
}
}
}
}
答案 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
[编辑]重要信息: