4kを超える文字列から作成された述語でOracle clobを使用する
以下のOracle SELECT述語で使用するために、4000文字を超える文字列(file_dataバインド変数で提供)からCLOBを作成しようとしています。 myQuery= select * from dcr_mols WHERE flexmatch(ctab,:file_data,'MATCH=ALL')=1; TO_CLOB()ラウンドfile_dataを追加すると、varcharの悪名高いOracle 4k制限に失敗します(<4k文字列の場合は問題ありません)。エラー(SQL Developerの場合)は次のとおりです。 ORA-01460: unimplemented or unreasonable conversion requested 01460. 00000 - "unimplemented or unreasonable conversion requested" FYI flexmatch関数は分子の検索に使用され、ここで説明されています:http ://help.accelrysonline.com/ulm/onelab/1.0/content/ulm_pdfs/direct/developers/direct_2016_developersguide.pdf 関数自体は少し複雑ですが、本質は2番目のパラメーターがCLOBでなければなりません。したがって、私の質問は、4000文字を超えるJava文字列bind_variableをSQL(またはJava)のCLOBに変換する方法です。 私は以下を使用してJava(Spring boot 2)で以下の方法(CLOBを挿入するときに機能します)を試しました: MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters.addValue("file_data", fileDataStr,Types.CLOB); jdbcNamedParameterTemplate.query(myQuery,parameters,… この方法は機能するはずですが、FYIである収束したflexmatchエラーで失敗します。 SQL state [99999]; error code [29902]; ORA-29902: error …