0

mssql 用の古い PHP ドライバーを使用しており、ContainsRegExp コマンドを使用して結果を除外しようとしています。問題は、比較しているフィールドが ntext であり、クエリが失敗することです。次のようなContainsRegExpコマンド内でキャストを行うことは可能ですか:

... AND Field1.ContainsRegExp(CAST(Field1 AS TEXT) AS Field1Test,\'html\')=1';

完全なクエリ ステートメント:

'SELECT ReportID, ReportDate, CAST(ReportData AS TEXT) AS TextData FROM Database WHERE ReportData.ContainsRegExp(CAST(ReportData AS TEXT),\'html\')=1';

私が見るエラーは次のとおりです。

message: Cannot call methods on ntext. (severity 15)
4

1 に答える 1

1

ContainsRegExp は、標準の SQL Server コマンドではありません。どのようにしてそのステートメントにたどり着いたのかよくわかりませんが、それは T-SQL ではありません。

私の推測では、どこかで同様のコマンドが CLR 型で使用されていると思います。これは、使用している構文 ( Field.Operation()) が CLR 型のメソッドの呼び出しに使用されているためです。

于 2012-06-07T16:34:32.060 に答える