Попытка открыть SQL* Plus из C#, когда пароль имеет специальный символ - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть программа, которая вызывает процесс sqlplus.exe и посылает по аргументам пользователя / password@tnsname, но у одной из БД в пароле есть «@», если я пытаюсь вручную подключиться к базе данных через терминал sqlplus Я могу подключиться, используя кавычки в пароле, например:

CONN scott/"tig@r"@MYDB @file.sql

Но, если я попытаюсь вызвать Process в моей программе, используя его как аргументы со строкой, я могу ' т подключиться в базе данных. Таким образом, программа показывает ORA-12154.

Я пытался:

string connection = "scott/\"tig@r\"@MYDB  @file.sql";
string connection = @"scott/""tig@r""@MYDB @file.sql";
string connection = @"scott@MYDB/""tig@r"" @file.sql";
string connection = "scott@MYDB\"tig@r\"   @file.sql";

Я уже пытался без части @ file. sql, но без успеха.

Вот часть кода, который я использую.

   System.Diagnostics.Process proc = new System.Diagnostics.Process();
   proc.StartInfo.FileName = "sqlplus"; //open sqlplus
   proc.StartInfo.Arguments = connection + " @" + tempFile;//send by arguments the connection and the file
   proc.StartInfo.UseShellExecute = false;
   proc.StartInfo.CreateNoWindow = false;

   proc.Start();
...