oracle一个很简单的问题!!

sidneychao 2011-03-31 11:54:10
我以前没有用过oracle,只用了sqlserver,mysql ,刚接触oracle 有点不习惯。
try {

Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:ORCL", "root", "root");
String sql = "insert into stu(id,name,intrest) values(seq.nextval,?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, "11");
pst.setString(2, "123");
pst.executeUpdate();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
报错:ORA-00904: "INTREST": 标识符无效

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.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:213)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:952)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1160)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
at demo1.inserted(demo1.java:25)
at demo1.main(demo1.java:11)

上述代码,仅供测试!!不是很规范,但是语法是没有错误的!很奇怪我用sys这个用户登录,操作。它又报这个错:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

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:283)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
longq121 2011-03-31
  • 打赏
  • 举报
回复
除了上述可能,还有一种可能就是INTREST 是不是数据库关键字,这样直接用也是不行的。
游一游走一走 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 coolfatman 的回复:]

两个问题,

问题一 , 你的字段肯定和数据库不符。

问题二 , sys和sql server中的sa不同的。 只能进行系统操作。一般不能作为普通用户登录的。

基本上每个用户都会在数据库中新建自己的schema,你可以理解为每个用户一个数据库。 每个用户都只能访问自己的schema。 每个用户的表要重新建立。 跨schema访问要加schema作为前缀,还要有权限。
[/Quote]

++
Coolfatman 2011-03-31
  • 打赏
  • 举报
回复
两个问题,

问题一 , 你的字段肯定和数据库不符。

问题二 , sys和sql server中的sa不同的。 只能进行系统操作。一般不能作为普通用户登录的。

基本上每个用户都会在数据库中新建自己的schema,你可以理解为每个用户一个数据库。 每个用户都只能访问自己的schema。 每个用户的表要重新建立。 跨schema访问要加schema作为前缀,还要有权限。
Upking369 2011-03-31
  • 打赏
  • 举报
回复
换个 用户连接试试 admin manaer

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧