次のリンクで説明した手順で配列を渡そうとしていますが、その配列はオプションでなければなりません。私は一括挿入をその手順でforallを使ってやっています。いくつかの時間リストも空にすることができますが、プロシージャ内の他のものは正常に実行する必要があります。NodeJs Oracledb optionalアレイをINバインド・パラメータとしてoracleプロシージャ
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#plsqlindexbybinds
connection.execute(
"BEGIN mypkg.myinproc(:id, :vals); END;",
[
1234,
{ type: oracledb.NUMBER,
dir: oracledb.BIND_IN,
val: [1, 2, 23, 4, 10]
}
],
function (err) { . . . });
作品が見つかりますが、私はエラーに
を取得していますヴァルスを渡したくない場合は、私は次のエラーメッセージ
を取得していますval:[]
val: null
val: undefined
and not having val at all
を試してみました
nullまたは未定義を渡そうとするとき、または渡さないとき:
PLS-00306: wrong number or types of arguments in call to 'INSERT_PROCEDURE'
NJS-039: empty array is not allowed for IN bind
空の配列を渡そうとしたとき、私はヌル
val:[null]
と手順でFORALLを実行する前に、リストからヌルを削除すると、配列を渡すことによって、周りの仕事をしてくれました。
これは一時的に機能しますが、私は本当にこの問題を適切な方法で解決したいと考えています。