oracle 创建.bat文件执行.sql语句时,发生SP2-0310报错,原因有下几个:
1、创建的.bat 文件与.sql文件不在同一个文件目录下,不能直接调用文件执行
解决方法: .bat里写入一行目录转跳,转至.sql文件目录下,执行.sql文件
string path = "sqlcommand.sql";
// cmd命令中,cd /d 为转到不同磁盘的目录下,相同磁盘的目录cd 即可,但是也可以用 cd /d
string road = "cd /d "+Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf('\\')+1) + @"Debug\Document";
string bat = string.Format("sqlplus {0}/{1}@{2} as sysdba @{3}","sys","sys","orcl",path);
// \r\n在写入文本时,会自动转成换行
File.WriteAllText(path,road+"\r\n"bat);
2、你的文件路径有无法识别的字符,如中文字
此时获取的StartupPath,导入进bat中就会成乱码,检查自己的StartupPath是否包含中文路径,改正即可