abreits / node-red-contrib-oracledb

Node-RED oracle database nodes
8 stars 15 forks source link

Error: NJS-006: invalid type for parameter 2 #7

Open oazabir opened 6 years ago

oazabir commented 6 years ago

Node-red crashes with this error. May be it needs some try...catch around this code:

21 Sep 11:56:39 - [info] [oracledb:PROFILE_EXEC] Oracle query start execution
21 Sep 11:56:39 - [info] [oracledb:PROFILE_EXEC] Oracle query execution started
21 Sep 11:56:39 - [red] Uncaught Exception:
21 Sep 11:56:39 - Error: NJS-006: invalid type for parameter 2
    at Object.assert (/data/node_modules/oracledb/lib/util.js:80:11)
    at Connection.execute (/data/node_modules/oracledb/lib/connection.js:88:16)
    at Connection.execute (/data/node_modules/oracledb/lib/util.js:99:19)
    at OracleServer.node.query (/data/node_modules/node-red-contrib-oracledb/lib/oracledb.js:186:33)
    at OracleServer.node.queryQueued (/data/node_modules/node-red-contrib-oracledb/lib/oracledb.js:255:22)
    at /data/node_modules/node-red-contrib-oracledb/lib/oracledb.js:146:30
    at /data/node_modules/oracledb/lib/oracledb.js:215:7
dirkzp commented 4 years ago

Have the same issue with an easy SQL Statement:

Error: NJS-006: invalid type for parameter 2
    at Object.assert (/home/admin/.node-red/node_modules/oracledb/lib/util.js:159:11)
    at Connection.execute (/home/admin/.node-red/node_modules/oracledb/lib/connection.js:145:16)
    at Connection.execute (/home/admin/.node-red/node_modules/oracledb/lib/util.js:178:19)
    at OracleServer.node.query (/home/admin/.node-red/node_modules/node-red-contrib-oracledb-mod/lib/oracledb.js:305:33)
    at OracleServer.node.queryQueued (/home/admin/.node-red/node_modules/node-red-contrib-oracledb-mod/lib/oracledb.js:383:22)
    at /home/admin/.node-red/node_modules/node-red-contrib-oracledb-mod/lib/oracledb.js:173:30
    at /home/admin/.node-red/node_modules/oracledb/lib/oracledb.js:255:7
stephan-wolf-ais commented 4 years ago

Hi all, the issue cames from an invalid bind parameter handling at line 83 in oracledb.js. There should be a check of typeof object or array like this:

if (typeof msg.payload === 'object' || typeof msg.payload === 'array') { values = msg.payload; }