我想使用c#windows窗体应用程序将数据库备份到我想要的位置
我正在尝试将名为“XE”的Oracle数据库以及所有表备份到我想要的位置上的“.bak”文件中。我正在使用OracleClient库 我用于连接的特定类: OracleConnection OracleCommand 但我一直在想: System.Data.OracleClient.OracleException:'ORA-00900:无效的SQL语句 " 不知道我错在哪里:'( 也尝试使用OleDBConnection和OleDBCommand,但出现相同错误:'( 我得到的异常:System.Data.OracleClient.OracleException:'ORA-00900:无效的SQL语句 " 引发异常:System.Data.OracleClient.dll中的“System.Data.OracleClient.OracleException” System.Transactions Critical:0:未处理的ExceptionOnKron.exeSystem.Data.OracleClient.OracleException,System.Data.OracleClient,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089ORA-00900:无效的SQL语句我想使用c#windows窗体应用程序将数据库备份到我想要的位置,c#,oracle,C#,Oracle,我正在尝试将名为“XE”的Oracle数据库以及所有表备份到我想要的位置上的“.bak”文件中。我正在使用OracleClient库 我用于连接的特定类: OracleConnection OracleCommand 但我一直在想: System.Data.OracleClient.OracleException:'ORA-00900:无效的SQL语句 " 不知道我错在哪里:'( 也尝试使用OleDBConnection和OleDBCommand,但出现相同错误:'( 我得到的异常:System
在System.Data.OracleClient.OracleConnection.CheckError(OCIRorHandle errorHandle,Int32 rc)1)调试应用程序2)获取生成的查询3)在Oracle SQL developer中运行我如何获取生成的查询?在visual studio?调试模式下或只需打印:
cmd.CommandText
;它已生成以下命令:CommandText“备份数据库XE到磁盘='C:\\Users\\UnKnown\\Desktop\\lul.bak'”string您的目标是什么命令<代码>备份数据库在Oracle中不是SQL命令,因此ORA-0900.1)调试应用程序2)抓取生成的查询3)在Oracle SQL developer中运行我如何抓取生成的查询?在visual studio?调试模式下或只需打印:cmd.CommandText
;它已生成以下命令:CommandText“备份数据库XE到磁盘='C:\\Users\\UnKnown\\Desktop\\lul.bak'”string您的目标是什么命令BACKUP DATABASE
在Oracle中不是SQL命令,因此使用ORA-0900。
OracleCommand cmd = new OracleCommand();
OracleConnection con = new OracleConnection("Data Source=XE;User ID=system;password=123;Unicode=true");
cmd.Connection = con;
string databaseName = null;
cmd.CommandText = "select * from global_name";
con.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
foreach(DataRow row in dt.Rows) {
databaseName = Convert.ToString(row[0]);
MessageBox.Show("" + databaseName);
}
con.Close();
cmd.CommandText = "backup DATABASE " + databaseName + " TO DISK = '" + back_path.Text + "\\" + back_file_name.Text + ".bak'";
con.Open();
cmd.ExecuteNonQuery();
con.Close();