使用Node js中的node-oracledb将对象作为输入参数传递给存储过程

时间:2018-09-04 13:35:56

标签: node.js oracle stored-procedures

我有一个存储过程,该过程需要两个输入参数并给出一个输出参数。
输入参数之一是Oracle自定义类型,第二个是CHAR类型
输出参数为数字类型

PROCEDURE SOMEPROCEDURE(
 P_REC IN RV_SEARCH_CRITERIA_REC,
 V_ITEM_BATCH_ID_FLAG IN CHAR,
 V_RV_BATCH_ID OUT NUMBER)

here RV_SEARCH_CRITERIA_REC is 
TYPE RV_SEARCH_CRITERIA_REC IS OBJECT(
   CUSTOMER_NAME   VARCHAR2(3000)
)

有人可以帮助我使用node-oracle节点模块访问该程序吗?

1 个答案:

答案 0 :(得分:0)

执行以下步骤:

CREATE OR REPLACE PROCEDURE myproc (id IN NUMBER, name OUT VARCHAR2) AS
BEGIN
  SELECT last_name INTO name FROM employees WHERE employee_id = id;
END;

您可以使用以下代码执行它:

    . . .
connection.execute(
  "BEGIN myproc(:id, :name); END;",
  {  // bind variables
    id:   159,
    name: { dir: oracledb.BIND_OUT, type: oracledb.STRING, maxSize: 40 },
  },
  function (err, result) {
    if (err) { console.error(err.message); return; }
    console.log(result.outBinds);
  });

尝试通过替换过程名称,参数和绑定来以相同的方式执行自己的操作。

在此处签出文档:https://oracle.github.io/node-oracledb/doc/api.html