- PR -

Oracleでリソースに埋め込んだsqlスクリプトを実行したい。

1
投稿者投稿内容
js
常連さん
会議室デビュー日: 2004/09/14
投稿数: 47
投稿日時: 2005-06-15 14:43
データベース:Oracle8.1.7
VisualStudio2003(C# + ODP.NET)

こんにちわ。リソースにSQL文を書いたhoge.sqlをSQLPLUSを使って実行したいのですが
どのようにすればよいでしょうか?
一行ずつ読込んでコマンドを実行する方法なら思いつくのですが。。

System.IO.Stream stream = ass.GetManifestResourceStream("project1.hoge.sql");
System.IO.StreamReader sr = new System.IO.StreamReader(stream,System.Text.Encoding.Default);

*トランザクション開始
while(sr.Read())
{
*コマンドの実行
}
*トランザクションコミット

どうにも方法がないならこの方法でいこうと思うのですがやりたいのは以下のような形です。Process P = new Process();
P.StartInfo.FileName = "sqlplus scott/tiger@db ";
P.StartInfo.Arguments = "@hoge.sql";
P.Start();

ファイルを配置しておいてそのパスを指定するというのなら出来るのですが
リソースに埋め込んである場合はどのようにすればよいのでしょうか?

よろしくお願い致します。
うちやま
会議室デビュー日: 2005/06/06
投稿数: 8
投稿日時: 2005-06-15 19:04
リソースから取得したSQLをファイルに出力して、SQL*Plusのコマンドを実行すれば良いと思います。
でもエラーやトランザクションを制御したいなら、リソースからSQL文を取得して ODP.NETで直接SQLを発行すれば簡単と思います。
複数のSQLをまとめて発行したいならPL/SQLブロックにまとめて実行できます。

SQL*Plusにこだわる理由が分かりません。
1

スキルアップ/キャリアアップ(JOB@IT)