2

関連する質問があることは知っていますが、私がウェブ上で見つけた解決策のほとんどは同じ解決策を持っています。ただし、セミコロンがないため、これは機能しません。

MyBatis を使用して NUnit テストを実行しています。

MyBatisコード

<select id="GetLineNumber" parameterClass="HashTable" resultClass="long">
  <![CDATA[
      SELECT
                     HP.LINE_NUM  
      FROM
                      ODS.HAIL_PLCY_LINE_NUM
      WHERE     
                      PLCY_ID = #PolicyId#
      AND             HCL_ID = #HailCoverageId#
</select>

C# コード: ...

  Hashtable lineNumberHash = new Hashtable
      {
         {"PolicyId",x.PolicyId}
            ,{"HailCoverageId",x.Id}
                 };
    lastDatabaseCoverage.AddRange(IbatisSqlMapper.QueryForList<T>("GetLineNumber", lineNumberHash));

上記のコードの「X」はオブジェクトであり、プロパティ PolicyId および Id は有効であるため、コンテキストのない情報は無視してください。

私は SQL Server に慣れているので、Select、From、Where がオフになっている場合は、簡単に修正できることをお詫びします。

「ORA01036 不正な変数...」というメッセージが表示され続けます

これは私の最初の質問なので、どれだけ早く回答が得られるかわかりませんが、うまくいけばかなり早く回答が得られます:-)

前もって感謝します!

4

2 に答える 2

1

ピクニックの問題。

CDATA タグが閉じられなかった理由は、コードからコピー/貼り付けしていたためです。私がしなかったことは、メッセージ全体を投稿することでした. コードの一部をコメントアウトしました。コメントを追加するのはダメだとは思っていませんでしたが、改めて見てみると CDATA タグはリテラルであることがわかりました。

タグからコメントを削除すると (文字どおりに読み取られないように)、問題が修正されました。結果マッピングの問題が発生しましたが、少なくともこの不正な変数のナンセンスを乗り越えました。

ヘルプとwiki記事をありがとう!

于 2012-12-04T16:11:42.490 に答える
0

唯一の問題は、クエリをラップしたCDATA セクションを閉じる必要があることです。これを行うには、次のように変更します。

      AND             HCL_ID = #HailCoverageId#
</select>

これに:

      AND             HCL_ID = #HailCoverageId#
  ]]>
</select>
于 2012-12-03T22:51:33.250 に答える