// Filter queries map
List<String> queriesMapKeys = new ArrayList<>();
for (String element : elementFilter) {
for (String type : typeFilter) {
queriesMapKeys.add(queries.get(element + "_" + type + "_QUERY"));
}
}
String[] queriesToJoin = queries.entrySet().stream().filter(e -> queriesMapKeys.contains(e.getKey())).collect(// I'm stuck here :-/);
String sqlQuery = String.join(" UNION ", queriesToJoin);
我的上表显示了此错误
错误报告 - ORA-00907:缺少右括号 00907. 00000 - &#34;错过右括号&#34;
我无法理解缺少哪个右括号。
答案 0 :(得分:2)
只需从最后一行删除逗号(,
)
这是您正确的代码(MySQL)
CREATE TABLE STUDENT
(
STUDENT_NAME CHAR(20),
FATHER_NAME CHAR(20),
ENROLL_NO INT(12),
PHONE_NO INT(12),
EMAIL_ID CHAR(20),
ADDRESS CHAR(20),
COURSE CHAR(20),
D_O_B DATE
);
oracle不支持 更新:: INT
。用户NUMBER
数据类型。
这是oracle的更新代码
CREATE TABLE STUDENT_TABLE
(
STUDENT_NAME CHAR(20),
FATHER_NAME CHAR(20),
ENROLL_NO NUMBER(10),
PHONE_NO NUMBER(10),
EMAIL_ID VARCHAR(20),
ADDRESS VARCHAR(20),
COURSE VARCHAR(20),
D_O_B DATE
);
答案 1 :(得分:1)
在我的结尾试过这个。这对我有用。
CREATE TABLE STUDENT_TABLE
(
STUDENT_NAME CHAR(20),
FATHER_NAME CHAR(20),
ENROLL_NO NUMBER(10),
PHONE_NO NUMBER(10),
EMAIL_ID VARCHAR(20),
ADDRESS VARCHAR(20),
COURSE VARCHAR(20),
D_O_B DATE
);
答案 2 :(得分:0)
甲骨文?摆脱CHAR和VARCHAR数据类型并使用 VARCHAR2 。
SQL> CREATE TABLE STUDENT
2 ( STUDENT_NAME VARCHAR2(20),
3 FATHER_NAME VARCHAR2(20),
4 ENROLL_NO NUMBER(12),
5 PHONE_NO NUMBER(12),
6 EMAIL_ID VARCHAR2(20),
7 ADDRESS VARCHAR2(20),
8 COURSE VARCHAR2(20),
9 D_O_B DATE
10 );
Table created.
SQL>
除此之外,该表没有定义主键,并且 - 在我看来 - 它应该。一些NOT NULL
约束(例如,在STUDENT_NAME上)可能是一个不错的选择。
再想一想,为何选择STUDENT_NAME?它不是规范化 - 应该分成(至少)STUDENT_FIRST_NAME和STUDENT_LAST_NAME。
某人(@Vikash,3小时前发布消息))表示Oracle不支持INT
数据类型;好吧,确实如此,但你宁愿使用NUMBER:
SQL> create table test
2 (phone_no int);
Table created.
但你无法设定其精确度:
SQL> create table test_2
2 (phone_no int(12));
(phone_no int(12))
*
ERROR at line 2:
ORA-00907: missing right parenthesis
SQL>
所以 - 在您的代码中 - 使用INT
或NUMBER(12)
,但要注意意外的陷阱(即舍入),例如
SQL> create table test
2 (num1 int,
3 num2 number(12));
Table created.
SQL> insert into test values (123.456, 123.456);
1 row created.
SQL> select * From test;
NUM1 NUM2
---------- ----------
123 123
SQL>