2011-03-31 2 views
0

자동으로 sqlplus를 실행하는 C# 응용 프로그램을 개발 중입니다. 나는 set lines을 사용하고, 페이지를 설정하고, spool 명령을 사용하여 적절한 형식과 레이아웃의 출력 파일을 만드는 방법을 찾고 싶다. 여기 내가sqlplus의 자동 실행 scrpts, set lines, spool 명령을 사용하여 필요한 레이아웃으로 출력 파일을 만듭니다. C#

ProcessStartInfo processInfo = new ProcessStartInfo(); 
processInfo.FileName = "sqlplus.exe"; 
processInfo.Arguments = "username/[email protected] @scriptFilePath"; 
Process process = Process.Start(processInfo); 

가 어떻게 통합하고 제가 위에서 언급 한 명령을 사용할 수 있습니다 C#을 사용하여 cmd를에서 SQLPLUS 실행하는 데 사용되는 코드는? 도움!

+0

왜 당신은'set'을 가질 수 없습니다 및 쿼리가있는 파일의'spool','scriptFilePath'? 출력이 어디로 가야 하는지를 제어하고 싶다면'spool & 1'을 사용하여 SQL * Plus의 두 번째 인수로 전달할 수 있습니다. –

+0

스크립트 파일에 인수와 함께 set 및 spool 명령을 정확히 포함 할 수있는 방법은 무엇입니까? & 1이 무엇을 의미하는지 말해 주시겠습니까? – edel

+0

대단히 감사합니다! 내가 스크립트에 명령을 포함하고 잘 작동합니다. – edel

답변

0

ProcessStartInfo.RedirectStandardInput 속성을 설정하고 Process.StandardInput에 쓸 수 없습니까?

+0

나는 그것을 시도했지만 작동하지 않습니다. – edel

+1

항상 그렇듯이 : "작동하지 않습니다"는 오류 설명이 아닙니다! –

+0

감사합니다, 나는 스크립트에 명령을 넣고 잘 작동합니다. – edel

0

에 대해 어떻게 :

  • 전면
  • 에 창을 지참하면 키 다음과 같은

보내기 :

Process sqlplus = Process.Start(processInfo); 
sqlplus.WaitForInputIdle(); 

IntPtr hWindow = sqlplus.MainWindowHandle; 
ShowWindow(hWindow, 1 /*toggle*/); 

SendKeys.SendWait("SELECT * FROM..."); 
SendKeys.SendWait("{Enter}"); 
+3

당신은 심각 할 수 없습니다. –

+0

@Daniel : 요구 사항을 이해할 수 있습니까? 당신은 정교 할 수 있습니까? –

+0

제 솔루션을 살펴보십시오. 이것이 콘솔 응용 프로그램의 표준 입력에 쓰는 정상적인 방법입니다. 당신이하는 일은 넓은 문이 열려있을 때 닫힌 창문을 통해 집에 들어가는 것과 같습니다. 그래서 말하기를 ... –

관련 문제