gpt4 book ai didi

java - 选择 Oracle java - ORA-00905 : not found keyword

转载 作者:行者123 更新时间:2023-11-29 10:10:58 27 4
gpt4 key购买 nike

我正在尝试在银行中运行连接测试并提取一些信息,apena s 来研究它,但我遇到了以下错误:

    Exception in thread "main" java.sql.SQLException: ORA-00905: 
not found keyword

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:790)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1272)
at Principal.Principal.main(Principal.java:46)

当我使用简单的 select 运行代码时,例如 select * from plan; 它完美地工作。

我该如何修复这个错误代码,有更简单的方法可以在 oracle 数据库中执行选择,或者这个代码就足够了?

我要运行查询显示岛上的所有列值 1 ( ICCID )。

ORA-00905: palavra-chave não encontrada

package Principal;
import java.sql.*;


public class Principal {

public static void main(String[] args) throws Exception {

Connection conexao = ObterConexao();

Statement statement = conexao.createStatement();


String query = "SELECT a.rp_package_value AS ICCID, "
+ "c.rrs_resource_value AS IMSI, "
+ " ( "
+ " CASE "
+ " WHEN (SUBSTR (c.rrs_resource_value, 6, 1) = SUBSTR (a.rp_package_value, 9, 1)) "
+ "AND (SUBSTR (c.rrs_resource_value, 6, 2) <> '00') -- valida se o HLR existe "
+ "THEN 'Valid' "
+ "ELSE 'Invalid' "
+ "END ) AS IMSI_CHECK , "
+ "rrs_resource_sts Status, rp_package_sts "
+ "FROM mtaapp20.rm_packages a, "
+ "mtaapp20.rm_package_content b, "
+ "mtaapp20.rm_resource_stock c "
+ "WHERE a.rp_package_value IN "
+ "(SELECT RRS_RESOURCE_VALUE "
+ "FROM mtaapp20.rm_resource_stock c "
+ "WHERE c.rrs_resource_tp_id = 6 "
+ "AND c.rrs_resource_pool = 30 "
+ "--AND a.rp_package_value like '89955053110002178148' "
+ "AND SUBSTR (RRS_RESOURCE_VALUE, 9, 2) like '%1%' "
+ "AND c.rrs_resource_sts = 'ASSIGNED' "
+ ") "
+ "AND a.rp_package_id = b.rpc_package_id "
+ "AND c.rrs_resource_sts = a.rp_package_sts "
+ "AND b.rpc_component_tp_id = 5 "
+ "AND b.rpc_component_vl_id = c.rrs_id "
+ "ORDER BY a.sys_creation_date DESC " ;





ResultSet resultSet = statement.executeQuery(query);


if (resultSet.next()) {

System.out.println(resultSet.getObject(2));

}

}


private static Connection ObterConexao() {

Connection conexao = null;


try {

Class.forName("oracle.jdbc.driver.OracleDriver");

conexao = DriverManager.getConnection(

"jdbc:oracle:thin:@BRUX:1521:T00WM11", "user", "password");

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}


return conexao;

}

}

最佳答案

您在这一行中有一个 SQL 注释:

+ "AND (SUBSTR (c.rrs_resource_value, 6, 2) <> '00') -- valida se o HLR existe "

问题是 Java 代码不知道 SQL 代码中的任何换行符,因此会忽略“--”之后的所有内容。只需将此行更改为:

+ "AND (SUBSTR (c.rrs_resource_value, 6, 2) <> '00') "

关于java - 选择 Oracle java - ORA-00905 : not found keyword,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34789914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com