|
■No38860 (もりお さん) に返信 > 2009/07/26(Sun) 21:46:18 編集(投稿者) >
コメントありがとうございます。
ちょっと情報が少なかったようで申し訳ありません。
> ・半角スペースは SQL の実行結果に付加されるのですか。 > それとも、SQL 文自体に付加されるのでしょうか。 まずコンパイルする文字列をイミディエイトウインドウで表示してみると以下の様になります。
"create or replace procedure プロシージャ名\r\n(引数1 in varchar2,\r\n・・・・・
コンパイルした後に
string sql = "SELECT text FROM user_source where name = '" + procName + "' and type = '" + procType + "' order by line"; DataTable dt = new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter(sql, connectStr); da.Fill(dt);
で取得すると
"create or replace procedure プロシージャ名 \n" ↑ ここにスペースが入ってしまいますorz \n の部分は
if(text.EndsWith("\n")) { text = text.Substring(0, text.Length - 1); } if(text.EndsWith("\r")) { text = text.Substring(0, text.Length - 1); } こんな感じで除去してます。(いい方法かどうかは微妙ですが・・・)
> ・どのようにして半角スペースの付加されたものを確認できますか。 上記の通りです。
> ・本来どのようになってほしいのでしょうか。 "create or replace procedure プロシージャ名\n" 本来は上記の様になってほしいです。 (\nの前にスペースが入らないようになってほしいです)
> ・どのような SQL 文を発行されたのでしょうか。 こちらも上記の通りです。
VB6で同じデータベースに対して同じようにコンパイルするプログラムを 作成していましたが、スペースが付くような事は無かったです。
なにか思い当たることがありましたら、よろしくお願いいたします。
|