简体   繁体   English

Oracle DB select 查询以数组的形式返回数据,而不是使用 nodejs 的 json 数组

[英]Oracle DB select query returning the data in form of array instead of json array using nodejs

My DB select result我的数据库 select 结果

{
        "metaData": [
            {
                "name": "CUSTOMERID"
            },
            {
                "name": "NAME"
            },
            {
                "name": "EMAILID"
            },
            {
                "name": "PHONE_NUMBER"
            },
            {
                "name": "CREATED_AT"
            },
            {
                "name": "ACC_STATUS"
            }
        ],
        "rows": [
            [
                "62c697be-b0b8-4f90-a014-149c1c175303",
                "ratan uday kumar",
                "uday@evontex.com",
                "+91781891",
                "2018-06-04T10:20:55.505Z",
                0
            ]
        ]
    }

Expected Data预期数据

[
    {
        "CUSTOMERID": "62c697be-b0b8-4f90-a014-149c1c175303",
        "NAME": "ratan uday kumar",
        "EMAILID": "uday@evontex.com",
        "PHONE_NUMBER": "+91781891",
        "CREATED_AT": "2018-06-04T10:20:55.505Z",
        "ACC_STATUS": 0
    }
]

I am using nodejs oracledb package我正在使用 nodejs oracledb package

Is there any method to get result in json array or do manually i have to write json array function???有什么方法可以在 json 数组中获得结果,或者手动我必须编写 json 数组 function ???

The Answer is by setting the Output format of response to object provided by @ torsten link答案是通过设置 Output 格式响应 @torsten链接提供的 object

var oracledb = require('oracledb');
oracledb.outFormat = oracledb.OBJECT;

The above answer have worked for me上面的答案对我有用

You most probably look for "oracledb.outFormat".您很可能在寻找“oracledb.outFormat”。 Check the documentation of this feature.检查此功能的文档

3.2.14 oracledb.outFormat 3.2.14 oracledb.outFormat

The format of query rows fetched when using connection.execute() or connection.queryStream().使用 connection.execute() 或 connection.queryStream() 时获取的查询行的格式。
It affects both ResultSet and non-ResultSet queries.它影响 ResultSet 和非 ResultSet 查询。
It can be used for top level queries and REF CURSOR output.它可用于顶级查询和 REF CURSOR output。

This can be either of the Oracledb constants oracledb.OUT_FORMAT_ARRAY or oracledb.OUT_FORMAT_OBJECT.这可以是 Oracledb 常量 oracledb.OUT_FORMAT_ARRAY 或 oracledb.OUT_FORMAT_OBJECT。 The default value is oracledb.OUT_FORMAT_ARRAY which is more efficient.默认值为 oracledb.OUT_FORMAT_ARRAY ,效率更高。 The older, equivalent constants oracledb.ARRAY and oracledb.OBJECT are deprecated.不推荐使用旧的等效常量 oracledb.ARRAY 和 oracledb.OBJECT。

Just add one line should already help:只需添加一行应该已经有帮助:

var oracledb = require('oracledb');
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM