java 标识符无效_java-Oracle无效标识符不理解字符串

本文探讨了一个Oracle查询问题,即在尝试检索具有特定学位的学生记录时出现的ORA-00911错误。作者详细介绍了查询代码及执行环境,并讨论了可能的原因及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的查询无法正常工作.这是命令变量.

当它执行时,应该检索具有BSc作为其学位的元组.我已经在oracle中直接测试过了,查询返回了这些.它与命令语句相同.

当我打印出命令时,该行看起来与在oracle中工作的命令完全相同.

从学生那里选择唯一的fname,lname,student_id,其中degree =’BA’;

但是,它应该打印到屏幕上.该表已被加载到oracle中.

我一直在为这个问题绞尽脑汁,但似乎找不到解决方法!

我不断得到的错误是:

ORA-00911:字符无效

我要做的是将扫描器的结果存储为字符串.因此,将其连接到命令变量中应该不会造成问题-查询看起来与在oracle中起作用的查询相同.

可能是因为它想要一个char而不是一个字符串吗?如果是这样,那么我将如何使其成为字符型“ BSc”呢?串联字符听起来很愚蠢.

相关代码如下:

private String getDegree() {

Scanner scan = new Scanner(System.in);

System.out.println("Please enter degree code (either BA or BSc)");

return scan.next();

}

//get the degree name

String degree = getDegree();

//get statement and execute appropriate select

Statement stmt = con.createStatement();

String command = "SELECT distinct fname, lname, student_id FROM student"+

" where degree='"+ degree + "';";

System.out.println(command);

ResultSet result = stmt.executeQuery(command);

//determine number of columns

ResultSetMetaData metadata = result.getMetaData();

int columns = metadata.getColumnCount();

//print heading

System.out.println("

FNAME LNAME STUD_ID");

System.out.println("====================================");

//loop through result and print columns

while (result.next()){

for (int i=1; i <=columns; i++){

System.out.print(result.getString(i)+spaces(15-result.getString(i).length()));

}

System.out.println();

}

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值