我必须开发一个将一些数据插入Oracle数据库的小程序.不幸的是我在使用SQL Statement和执行它时遇到了一些麻烦.这是我正在使用的代码:
db.execute(
String.format("INSERT INTO tops VALUES (%d, '%s', %d, %f.00, '%s', TO_TIMESTAMP('%s', 'YYYY-MM-DD HH24:MI:SS.FF'))",
item.getID(),
item.getTitle(),
this.elements,
item.getSize(),
item.getEntity(),
timestamp.toString()));
Run Code Online (Sandbox Code Playgroud)
这是执行应该工作的部分,但是我收到以下错误:
java.sql.SQLException: ORA-00913: Zu viele Werte
Run Code Online (Sandbox Code Playgroud)
谷歌翻译例外是:
java.sql.SQLException: ORA-00913: Too many values
Run Code Online (Sandbox Code Playgroud) 我得到了"太多的值"错误,我不知道如何处理它.问题从第一个嵌套的SELECT开始
SELECT p.name, p.phone_number
FROM person p WHERE
(SELECT ks.title, ks.ks_code
FROM required_skills rs JOIN knowledge_skills ks USING (ks_code)
WHERE rs.pos_code = 'CS1')
IN (SELECT ks.title, ks.ks_code
FROM courses_taken ct JOIN course_learning_units clu
USING (c_code) JOIN learning_unit_skills lus USING (lu_code)
JOIN knowledge_skills ks USING (ks_code))
Run Code Online (Sandbox Code Playgroud)
我查找了有关此错误的信息,我相信这是因为WHERE中的子查询返回了太多列.表格数据如下.但是我该如何减少呢?我感谢任何指点,谢谢
required_skills
POS_CODE VARCHAR2(10 BYTE) Yes 1
KS_CODE VARCHAR2(10 BYTE) Yes 2
Run Code Online (Sandbox Code Playgroud)
learning_unit_skills
LU_CODE VARCHAR2(10 BYTE) Yes 1
KS_CODE VARCHAR2(10 BYTE) Yes 2
Run Code Online (Sandbox Code Playgroud)
人
PER_ID NUMBER(38,0) No 1
NAME VARCHAR2(255 BYTE) Yes 2 …Run Code Online (Sandbox Code Playgroud) 我的应用程序团队正在尝试使用他们的程序即时构建的 SELECT 查询从表中获取 85,000 个值。
SELECT * FROM TEST_TABLE
WHERE (
ID IN (00001,00002, ..., 01000)
OR ID IN (01001,01002, ..., 02000)
...
OR ID IN (84001,84002, ..., 85000)
));
Run Code Online (Sandbox Code Playgroud)
但我收到错误“ORA-00913 值太多”。
如果我将 in 子句减少到仅 65,000 个值,则不会收到此错误。IN CLAUSE(伴随 OR 子句)的值是否有任何限制
我正在尝试比较2列,目标是返回不匹配的行.例如,我在第1列和第2列中有以下内容
1 2
id name age job id name age job
1 aaa 11 bbb 1 aaa 11 bbb
2 ccc 22 ddd 2 ccc 22 eee
Run Code Online (Sandbox Code Playgroud)
我正在寻找的回报是
2 ccc 22 ddd
2 ccc 22 eee
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下内容
select id, name, age from 1 where id in
(
select id, name, age from 1
minus
select id, name, age from 2
)
union all
select id, name, age from 2 where id in
(
select id, name, age from 1
minus …Run Code Online (Sandbox Code Playgroud)