String url =
"jdbc:oracle:thin:@**.**.**.**:1521:&&"//定义数据库的链接语句,**表示你要链接的数据库的ip地址。当然如果你的本机上有oracle也可以写成127.0.0.1或者localhost,"&&"表示你的数据库名称。Stringusername ="scott"
//你登陆数据库的用户名
String password ="*******"
//你登陆数据库的密码Stringsql= "insert into users(username,password)
values(?,?)"
//插入数据的命令语句try{
Class.forName(driver)Connectionconn = DriverManager. getConnection_r(url,
username,password)
PreparedStatement
pstmt = conn.prepareStatement(sql)
pstmt.setString(1,
"god")
//当然为了方便我这是随便插入的数据
pstmt.setString(2,
"god")//同上
pstmt.executeUpdate()
pstmt.close()
conn.close()
//完成后关闭链接
} catch (ClassNotFoundException e) {
e.printStackTrace()
} catch (SQLExceptione) {
e.printStackTrace()}}}程序运行完成后你就会在你的数据库里看到多了一条记录username:god
password:god,另外我们觉得这篇博文的读者应该是那些对oracle数据库有一定的了解的程序开发爱好者源码天空
,如果你还不了解oracle,那你就需要对数据库有一定的了解这后再来看这篇博文。
对于一个热衷于程序设计的人来说,我们认为最主要的是你的程序一定要有一定的标准,我们认为这个例子是链接数据库最标准的方法。当然仁者见仁嘛
如果你在使用API链接Oracle数据库时提示数据库只读,可能是因为该用户没有对数据库写入权限所致。在Oracle数据库中,每个用户都有不同的授权和权限级别,只有拥有“读写权限”的用户才能进行对数据库的修改和更新。要解决这个问题,可以尝试按照以下步骤 *** 作:
1.检查数据库的登录用户是否有写入权限,可以通过SQL Developer等工具查询当前用户的权限,或者联系数据库管理员(DBA)请求写入权限。
2.确认数据库连接使用的用户名和密码是否正确,如果登录凭据无效,可能也会导致只读 *** 作。
3.确保数据库可以接受写入请求,有时候可能需要启用事务或者适当更改数据库参数设置,才能最终使得API可以写入数据。
4.验证 API代码是否有正确的写入语句。如果数据库只读,那么写入函数可能会失败,并显示类似“只读连接”或“连接无效”的错误信息。
在这个过程中,注意留意任何关键信息,保留相关日志记录以追踪问题,以便于准确定位和解决问题。
楼主您好1.Oracle启动模式的nomount阶段
nomount,在这个启动阶段里,Oracle主要做的事情,就是找到相关的启动参数文件,并且打开启动参数文件,根据启动参数里记录的参数值。
启动实例,并且启动成功的话,打开告警文件alert_.ora文件,这个文件默认在ORACLE_BASE/admin/SID
/bdump下,并且记录相关的启动信息。如果在startup里指定了pfile=''的话,Oracle将从你指定的文件作为启动参数文件,如果是没有指定pfile的话,Oracle会先去默认目录($ORACLE_HOME/)下找spfileSID.ora,如果没有找到,则找
spfile.ora,如果还是没有,找initSID.ora,这个就是以前的静态参数文件了,如果没有则找init.ora如果没有找到的话,这时候,启动就会有,找不到参数文件的错误,同时会动态注册实例名到监听服务里。
当然,在使用startup pfile=''前,我们需要先用create pfile from spfile把实例的动态参数文件先export成静态的文本参数文件,然后根据合适的参数修改这个文件,修改好了一个在用这个pfile启动。
2.Oracle启动模式的mount阶段
当达到了nomount阶段以后,数据库就只能一步一步的来进行启动了,他的下一个启动的阶段,就是mount。我们通过alter
database mount来从nomount阶段或者通过startup
mount来到达这个阶段,到达这个阶段,Oracle从启动参数文件里找到控制文件的路径参数值,找到所有的控制文件,然后打开读取控制文件的信息,控制文件里记录了各种表空间文件,日志文件的信息,以及数据库的字符集,其实就是控制文件里的记录(控制文件是可以指定多个的,只要有个一个不能成功读取,这个阶段将会失败),这时,数据库已经读取了相关系统文件的信息,也读取了字符集信息,但是仅仅只是读取,这些系统文件,并没有真正的加载到数据库里。
曾经有人启动到mount的时候,出现问题,最后一看原来是control文件这里已经被删除掉了,解决的办法,就是从备份的控制文件来一个过来,然后做恢复就可以了。如果没有备份,在nomount下,新建一个controlfile,就可以了。
3.Oracle启动模式的open阶段
mount阶段结束后,数据库体系的所有信息已经读取全了,我们知道了redo文件,数据文件的信息,但是还没有加载,到open状态,数据库读取所有的文件,如果有一个文件不能成功读取,open阶段就会失败。这时候,我们能够解决的就是通过错误的提示,进行数据恢复,或者错误排查。
这一个阶段的错误的各种原因最多,处理起来的方式也相对于前面的要复杂的多,不过基本上都是和数据文件,日志文件缺失,数据scn不一致,等等有关,这时我们需要做的就是根据错误的提示来进行相应的数据恢复,和数据排查,这块是数据库恢复最有趣的地方。
SMON是系统监视器(System
Monitor)的缩写。如果Oracle实例失败,则在SGA中的任何没有写到磁盘中的数据都会丢失。有许多情况可能引起Oracle实例失败,例如, *** 作系统的崩溃就会引起Oracle实例的失败。当实例失败之后,如果重新打开该数据库,则背景进程SMON自动执行实例的复原 *** 作。
DBWR是数据库书写器(Database
Write)的缩写.该服务器进程在缓冲存储区中记录所有的变化和数据,DBWR把来自数据库的缓冲存储区中的脏数据写到数据文件中,以便确保数据库缓冲存储区中有足够的空闲的缓冲存储区。脏数据就是正在使用但是没有写到数据文件中的数据。
LGWR是日志书写器(Log Write)的缩写。LGWR负责把重做日志缓冲存储区中的数据写入到重做日志文件中。
CKPT进程是检查点(Checkpoint)的缩写。该进程可以用来同步化数据库的文件,它可以把日志中的文件写入到数据库中。
PMON是进程监视器(Process Monitor)的缩写。当取消当前的事务,或释放进程占用的锁以及释放其它资源之后,PMON进程清空那些失败的进程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)