現在、私はOracle(ODP.NET)データプロバイダとT4でSubSonic3 ORM(ActiveRecordsモード)テンプレートを使用してOracle 10g(バージョン10.2.0.3.0)のDBにアクセスします。SubSonic3 T4テンプレートOracle(ODP.net)のActiveRecord(Square Bracketsの問題)の奇妙なクエリを生成します
テンプレートを取得して私のためにさまざまなコードをビルドした後、コンパイルして実行することができましたが、私が生成するクエリーに問題があります。
トレース/コードを通してステッピング、私が生成されていたものをSQLクエリを見ていたし、これを見つけた:
SELECT [t0].[SOME_COLUMN], [t1].[ANOTHER_COLUMN]
FROM [USER].[SOME_TABLE] AS t0
CROSS JOIN [USER].[ANOTHER_TABLE] AS t1
WHERE ([t0].[ID] = [t1].[ID])
そして、私のコードが見つからない表現」のOracleのメッセージで例外を投げていた。ORA -00936 "となります。だから、私はコマンドラインで直接このクエリを実行しようとし、同じメッセージでエラーが発生しました。
それから、すべての角括弧(私の右には見えませんでした)と "AS"参照(2行目と3行目)の両方が削除され、クエリが正常に実行されました。
なぜ私はSubSonicがこれをやっているのか説明できますか?それとも、これをどう修正するか?
ありがとうございます!
EDIT:私は(私はOracleの専門家ではないので)私も尋ねるべきだと思います。大括弧は正常/合法ですか? "AS"演算子はどうですか?
うわー、私はこの返答に遅れていますが、私はSubSonicとタグ付けされた古い投稿を梳き、これを見ました。ご存じのように、私のGitHubリポジトリ(上記のリンク先)は、Oracle ODP.NETサポートの「ベータ版」を入手するための正しい場所です。これは最終的にバージョン3.1.0.0のメインのSubSonicコードにロールオーバーされますが、そのリリースがいつ起こるのか分かりません。私はこのコメントをここに残しておくべきだと思ったが、これは将来これを見てもらう人のためだ。 – CodingWithSpike
@ rally25rs:ハウルから別のスバル愛好家! –