0

以下に示すように、Oracle コマンドに小さな問題があります。

command.CommandText = "SELECT ID, NAME, RATING, LENGTH, STARTTIME FROM SCHEDULE WHERE ID=301 AND ROWNUM=1 AND SCHEDULE.STARTTIME <= SYSDATE ORDER BY STARTTIME DESC;";

Oracle SQL Developer では問題なく動作し、必要なものを正確に返しますが、C# では次のエラーが発生します。

ORA-06550: line 1, column 186:
PLS-00103: Encountered the symbol "," when expecting one of the following:

. ( * @ % & = - + < / > at in is mod remainder not rem
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec as between || indicator multiset member
submultiset

それに関する問題や、C# 内で違法なことは誰にもわかりますか?

編集: 実行コード:

command.Connection = conSQL;
using (IDataReader reader = command.ExecuteReader())
{
    do
    {
        int count = reader.FieldCount;
        while (reader.Read())
        {
            for (int i = 0; i < count; i++)
            {
                 string setting = reader.GetName(i).ToString();
                 object value = reader.GetValue(i);

                 ** Data assigned to variables here, hidden due to length of code**
                 ** Follows pattern: object.property(reader.name) = reader.value **
            }

        }
    } while (reader.NextResult());
 }
4

3 に答える 3

2

ドットを入れない; コマンドの最後では、これはコマンドラインツールの規則であり、SQL本体の一部ではありません(sqlplusは/をターミネーターとして使用します)

于 2012-09-12T11:43:25.557 に答える
1

NameとIdは、どちらもOracleSQLの特別なキーワードです。試す:

SELECT "ID", "NAME"...
于 2012-09-12T11:44:17.097 に答える
1

SQL ステートメントの末尾のセミコロンを削除します。

共有してお楽しみください。

于 2012-09-12T11:44:27.863 に答える