我正在 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,但似乎没有任何效果。 我之前遇到过与驱动程序/版本配置相关的问题,但这个问题并没有让我摆脱困境。
这里可能出现什么问题?
这里可能出现什么问题?
问题可能是数据库中有 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
)
注意:根据需要修改数据类型。