繁体   English   中英

JDBC连接字符串和Oracle同义词

[英]JDBC connect string and Oracle synonyms

我们有一个Java程序,它通过JDBC瘦客户端连接到Oracle 10g数据库。

一切工作正常,但是现在DBA希望我们使用不同的用户名/密码进行连接,该用户名/密码应该可以使用公共同义词访问相同的表。 不幸的是,Java程序不再看到表(当我尝试执行“从表名中选择*”时,请参阅下面的错误)。

我尝试使用相同的用户名/密码与Oracle SQL Developer进行连接,在这种情况下,我可以运行“ select * from tablename”而不会出现问题。

我需要在连接字符串中输入特定参数吗?

非常感谢!

Exception in thread "main" java.sql.SQLException: ORA-00942: table or view does not exist
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:1037)
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)
at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1687)
at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1653)

Edited by: user555817 on 08-Oct-2010 04:55

您必须将Schema Name和表名一起附加并使用大写字母(我不记得是区分大小写还是大写)。

示例:如果SCH1中有一个Employee表,并且在SCH2中创建了同义词作为SCH2.Employee的Emp,那么以下语句是有效的,

    SELECT * FROM SCH2.emp

其中,emp:同义词名称SCH2:在此创建同义词的模式名称,而不是实际表的模式名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM