java - ORA-04054 : database link GMAIL. COM 不存在

标签 java sql oracle jdbc

我需要有关我大学项目的帮助(带有 hibernate 和 oracle 数据库的 Java web),这必须编辑之前已添加的用户,这些用户具有: 邮件PK 经过 输入user.iduser FK。

添加和删除它可以工作但不能编辑,错误是: javax.servlet.ServletException:java.sql.SQLSyntaxErrorException:ORA-04054:数据库链接GMAIL.COM不存在

我已经尝试过使用准备好的语句,但我认为我做错了

邮件不需要编辑。只有用户和密码类型需要它,但在按下编辑按钮时,它向我显示错误 gmail.com 不存在

<%
            //CONECTANOD A LA BASE DE DATOS:

            Class.forName("oracle.jdbc.OracleDriver").newInstance();
            Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "C##PORTA", "oracle");
            String id = request.getParameter("correo");
            PreparedStatement  stm = con.prepareStatement(id);
            String Query = "select * from usuario where correo=" + id;
            PreparedStatement ps;
            ResultSet rs = stm.executeQuery(Query);
            while (rs.next()) {
        %>``` 



最佳答案

老程序员有shown你这样做的正确方法。如果您(正确地)使用PreparedStatement,它将正确处理引用,并且还可以防止 SQL injection攻击。

您收到晦涩错误消息的原因是您的 SQL 语句在连接后很可能看起来像这样:

 select * from usuario where correo=someone@gmail.com

由于电子邮件地址未加引号,因此 SQL 解析器无法将其识别为字符串文字。相反,它将其视为“数据库链接”,如 CREATE DATABASE LINK 中所述。 。

After you have created a database link, you can use it in SQL statements to refer to tables and views on the other database by appending @dblink to the table or view name.

这会失败,因为尚未创建名为“gmail.com”的此类数据库链接。

关于java - ORA-04054 : database link GMAIL. COM 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56510796/

相关文章:

创建表中的 MySQL 日期格式

sql - Postgres : select query with group by clause on a range of dates

java - Java 中的 Oracle 连接池

java - 将csv文件加载到oracle数据库

java - Android SDK Manager.exe 不起作用

java - 如何从 MenuItem On Action 方法调用 Stage.initOwner()?

java - 条件数量未知的 If 语句

java - JNI 不满意链接错误?

SQL Server 2005 - WHERE 子句 - 使用 IF 或 CASE 或 BOOLEAN?

oracle - Oracle 中的 Pragma Inline 与 Pinning 对象