使用jsp执行oracle语句

时间:2012-04-09 08:59:50

标签: oracle jsp jdbc

如何使用jsp执行'conn / as sysdba'。 使用

PreparedStatement stmt = conn.prepareStatement(sql);

显示java.sql.SQLException:SQL字符串不是Query?

我怎样才能使用jsp?

2 个答案:

答案 0 :(得分:0)

是的, sql 是查询,但您需要resultQuery = stmt.executeQuery()来保存结果。

另外,请查看驱动程序连接,数据库所在机器的名称以及用户名和密码。

答案 1 :(得分:0)

conn是SQL * Plus命令,而不是SQL语句。因此它只能用于SQL * Plus(或其他恰好支持SQL * Plus命令的客户端工具)。你不能通过JDBC使用它。

conn / as sysdba告诉SQL * Plus使用操作系统身份验证以启用SYS角色的用户SYSDBA连接到数据库。在这种情况下,操作系统身份验证要求在安装数据库的服务器上调用SQL * Plus,并且用户以操作系统用户“oracle”身份登录。 JSP页面使用这样的操作系统身份验证似乎非常不可能和/或可能 - 这至少要求运行JSP代码的应用程序服务器安装在同一台服务器上Oracle已安装,并且它作为与Oracle数据库相同的操作系统用户运行。这些都不是特别可能。对于启用了SYS角色的SYSDBA连接到数据库,对于JSP页面来说也是非常奇怪的 - 您希望JSP代码能够以这些特权运行是非常罕见的。通常,Oracle数据库不允许从运行Oracle的计算机以外的任何地方进行SYS连接,因为通常只有DBA会使用该帐户登录,然后才会执行非常小的一组实际上需要那种提升访问权限的任务。

应该可以将Oracle配置为接受具有SYS角色的用户SYSDBA的远程连接。并且应该可以在JSP代码中配置连接字符串以使用该帐户的相应密码。但是,想要两者兼而有之并非常罕见,并且会打开这么大的安全漏洞,我会严肃质疑这是否真的是你想要做的。你能解释一下你要解决的问题吗?