数据库选择在 Mule 中未按预期工作

问题描述 投票:0回答:1

我正在 Anypoint Studio 中使用数据库选择连接器。这是我正在使用的查询

SELECT emp_id, emp_name, emp_status FROM employees
。现在没有错误,但我收到的响应是这样的(转换为 json):

[
    {
        "EMP_ID": 2345336,
        "EMP_NAME": "Dhananjay Pareek",
        "EMP_STATUS": "Inactive"
    },
    {
        "EMP_ID": 101,
        "EMP_NAME": "emp1",
        "EMP_STATUS": "active"
    },
    {
        "EMP_ID": 122365,
        "EMP_NAME": "Aram",
        "EMP_STATUS": "Active"
    },
    {
        "EMP_ID": 6666,
        "EMP_NAME": "Rakim",
        "EMP_STATUS": "Inactive"
    },
    {
        "EMP_ID": 667676,
        "EMP_NAME": "Kendrick",
        "EMP_STATUS": "Active"
    },
    {
        "EMP_ID": 7778,
        "EMP_NAME": "Biggie",
        "EMP_STATUS": "Inactive"
    },
    {
        "EMP_ID": 102,
        "EMP_NAME": "emp2",
        "EMP_STATUS": "inactive"
    },
    {
        "EMP_ID": 103,
        "EMP_NAME": "emp3",
        "EMP_STATUS": "active"
    },
    {
        "EMP_ID": 104,
        "EMP_NAME": "emp4",
        "EMP_STATUS": "inactive"
    },
    {
        "EMP_ID": 105,
        "EMP_NAME": "emp5",
        "EMP_STATUS": "active"
    },
    {
        "EMP_ID": 106,
        "EMP_NAME": "emp6",
        "EMP_STATUS": "active"
    },
    {
        "EMP_ID": 1012,
        "EMP_NAME": "Drake",
        "EMP_STATUS": "Active"
    },
    {
        "EMP_ID": 3245,
        "EMP_NAME": "Kendrick Lamar",
        "EMP_STATUS": "Inactive"
    },
    {
        "EMP_ID": 5897,
        "EMP_NAME": "J. Cole",
        "EMP_STATUS": "Active"
    },
    {
        "EMP_ID": 1123,
        "EMP_NAME": "Cardi B",
        "EMP_STATUS": "Active"
    },
    {
        "EMP_ID": 7458,
        "EMP_NAME": "Lil Wayne",
        "EMP_STATUS": "Inactive"
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    },
    {
        "EMP_ID": null,
        "EMP_NAME": null,
        "EMP_STATUS": null
    }
]

我使用的是Oracle数据库。返回 26 条记录,而我的数据库中只有 16 条记录。如上所示,有 10 条额外记录的字段值均为空。我还调试了我之前制作的一些项目,这些项目中的选择连接器也表现得像这样(之前都工作正常)。 我尝试使用不同版本的数据库模块、不同的 jdbc 驱动程序以及 jdk8 和 jdk 17,但似乎没有任何效果。 我之前遇到过与驱动程序/版本配置相关的问题,但这个问题并没有让我摆脱困境。

这里可能出现什么问题?

oracle mule4 mule-esb
1个回答
0
投票

这里可能出现什么问题?

问题可能是数据库中有 26 行,其中 10 行包含

NULL
值。

在 Oracle 中,运行:

SELECT *
FROM   employees
WHERE  emp_id IS NULL
AND    emp_name IS NULL
AND    emp_status IS NULL

它应该返回 10 行,其中这些列具有

NULL
值。

如果您不需要这 10 行,则使用:

DELETE FROM employees
WHERE  emp_id IS NULL
AND    emp_name IS NULL
AND    emp_status IS NULL

然后

COMMIT
进行更改。

如果这些列中应始终包含非空值,则:

ALTER TABLE employees (
  emp_id     NUMBER(10,0)  NOT NULL,
  emp_name   VARCHAR2(200) NOT NULL,
  emp_status VARCHAR2(10)  NOT NULL
)

注意:根据需要修改数据类型。

© www.soinside.com 2019 - 2024. All rights reserved.