YYYYMMDDで日付を取り出すだけで、クエリ・アナライザでこの処理を行うことはできますが、C#でこの問合せを実行しようとすると、それはまた、連結を行うのが難しいようです(しかしそれはそれほど問題ではありません)ので、ここで何が起こっているのか少し不明です。私は本当にto_char関数を動作させたいだけです。アイデア?ありがとう!Oracleの日付形式 - to_char関数を認識できないデータ・リーダー
string oradb = "user id=x;password=x;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)"
+"(HOST=x)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=x)));";
OracleConnection conn = new OracleConnection(oradb);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText =
"SELECT to_char(ProblemDate, 'yyyymmdd'), data1, data2,"
+"data4, data5, data6"
+" WHERE (ProblemDate >='03-oct-2011') "
+"AND (ProblemDate <= '08-oct-2011') AND "
+"(data1 in ('3','5','6'))";
OracleDataReader dr = cmd.ExecuteReader();
string fileOut1 = Request.PhysicalApplicationPath;
string fileOut = fileOut1 + "Text5.txt";
// Creates the file
StreamWriter sw = new StreamWriter(fileOut);
if (dr.HasRows)
{
while (dr.Read())
{
string data1= (string)dr["data1"].ToString();
string data2 = (string)dr["data3"].ToString();
string data3 = (string)dr["data4"];
string data4 = (string)dr["data5"].ToString();
string data5 = (string)dr["data6"].ToString();
string ProblemDate = (string)dr["ProblemDate"].ToString();
//remove the comma
char[] MyChar = { ',' };
sw.WriteLine(data1.PadRight(10) + data2.PadRight(5) + data3.TrimEnd(MyChar) + "000" +
data4 + "000" + data5+ ProblemDate + " " + "N");
Label1.Text = "File created successfully.<br />";
Label1.Text += fileOut1;
}
// Closes the connenction.
sw.Close();
conn.Close();
}
else
{
Label1.Text = "No data written.";
}
ああ。それは私が試していない唯一のものです。ありがとうございました! – mtnwk
私はこれを最初に気づいていませんでしたが、@ Rajeshが彼の答えで指摘したように、問題となる 'FROM'節はありません。 :) – wweicker
@mtnwkこの回答(または別のもの)が問題を解決しましたか?その場合は、適切な回答に合格とマークを付けてください。 – wweicker