SQL実行時にバインドパラメータを255個以上渡したい場合について。
こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。
私はIRISでSQLアクセスを行うプログラムをを作成しており、
テーブルアクセスには%ScrollableResultSetクラスのAPIを用いて処理を実現しています。
作成するSQLはインジェクション対策のため、?パラメータを用いておりますが、
この度、大量のパラメータ(600項目)を用いるSQLを作成する必要が出てきました。
https://irisdocs.intersystems.com/iris20191/csp/docbookj/DocBook.UI.Page...
こちらによりますと、可変長引数を用いても引数の上限値は255個となっており、
実際に600個のパラメータを引数に与えてSQLアクセスしようとすると、<STACK>エラーが発生する状況です。
Set query = "SQL文" Set result = ##class(%ScrollableResultSet).%New("%DynamicQuery:SQL") Do result.Prepare(query) Do result.Execute(parameterValue...) #; ここに600個のパラメータをセット
%Execute()の引数がRawStringならよかったのですが、仕様的に可変長引数になっているので、手詰まり状態になっております。
何かいい方法をご存氏の方はいらっしゃいますでしょうか?
Product version: IRIS 2021.1