异常是执行这个存储过程出的异常吧,那就是说只有执行一次这个存储过程才会抛一次异常么?如果这样我建议你可以再写个存储过程来调用你这个存储过程,这样来记录异常的次数。然后再进行处理!
成都创新互联公司专注于企业营销型网站建设、网站重做改版、三沙网站定制设计、自适应品牌网站建设、H5页面制作、商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为三沙等各大城市提供网站开发制作服务。
很显然在p2中 异常exp1没有定义,而p1中 exp1进行过初始化, 所以p1认识exp1,erp2不认识(将其当做其它)
你可以给exp1定义一个异常号码,这样在p2中截获异常时通过对异常号码进行判断。
或者把他们放到一个oracle包中,将exp1 定义为 包变量,这样p1中初始化过exp1,p2中也可以使用了。
ORA-28040: No matching authencation protocol
1、问题复现:Spring boot 应用启动时候正常,但是页面访问后台接口,程序再访问数据库时,控制台报错如下:没有匹配的身份验证协议
Caused by: java. sql. SQLExceptiona ORA-28040: No matching authentication protocol
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java 112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java: 331)
....
2、产生原因:当时环境是:Java jdk 1.8 + Spring boot ,在开发环境时是 Oracle 11g,此时运行正常,后面到测试环境换成 Oracle 12C,就发生上面的错误,经过检查发现原来是 .jar 文件里面打了两个不同版本的 Oracle 驱动。
3、解决方式:直接用压缩工具打开 .jar 文件,然后手动删除多余的 ojdbc14-x.x.x.jar 文件,只留下 ojdbc8 版本的驱动即可。
OracleOraDb11g_home1TNSListener服务启动后停止
1、问题复现:有时候连接 Oralce 的时候发现连接不上,然后打开 "services.msc" 服务面板发现 xxxxTNSListener 监听服务没有启动,当手动启动监听服务的时候,它弹框提示:“本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”
2、产生原因:Oracle 数据库通常都会提供远程访问,比如小张电脑上安装了 Oralce 数据库,小李、小刘就可以直接访问小张的Oracle。Oracle 开启远程访问,需要在配置文件中设置本机 ip 地址,这样其它人才能通过 IP 访问,然而当 IP 在某些情况下发生变化时,比如切换了网络,或者是动态 IP 等情况,Oracle 监听器监听的 IP 与计算机实际 IP 就会不一致,然后就会发生上面的错误。
3、解决方式:找到 Oracle 数据库安装目录下的 listener.ora 文件,比如 C:appThinkproduct11.2.0dbhome_1NETWORKADMINlistener.ora。然后修改其中监听的 IP 为 Oralce 安装的计算机 IP 地址,比如下面的 192.168.3.195。最后再次启动监听服务即可正常。
完全下载后重装
一、在oracle11G以前卸载oracle会存在卸载不干净,导致再次安装失败的情况,在运行services.msc打开服务,停止Oracle的所有服务。
二
oracle11自带一个卸载批处理。
\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除)
运行过程中可能需要填写如下项:
指定要取消配置的所有单实例监听程序[LISTENER]:LISTENER
指定在此 Oracle 主目录中配置的数据库名的列表 [MYDATA,ORCL]: MYDATA,ORCL(运行慢,需等待)
是否仍要修改 MYDATA,ORCL 数据库的详细资料? [n]: n
CCR check is finished
是否继续 (y - 是, n - 否)? [n]: y
三、运行regedit命令,打开注册表。删除注册表中与Oracle相关内容,具体下:
删除HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE目录。
删除HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services中所有以oracle或OraWeb为开头的键。
删除HKEY_LOCAL_MACHINE/SYSETM/CurrentControlSet/Services/Eventlog/application中所有以oracle开头的键。
删除HKEY_CLASSES_ROOT目录下所有以Ora、Oracle、Orcl或EnumOra为前缀的键。
删除HKEY_CURRENT_USER/SOFTWARE/Microsoft/windows/CurrentVersion/Explorer/MenuOrder/StartMenu/Programs中所有以oracle 开头的键。
删除HKDY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI中除Microsoft ODBC for Oracle注册表键以外的所有含有Oracle的键。
删除环境变量中的PATHT CLASSPATH中包含Oracle的值。
删除“开始”/“程序”中所有Oracle的组和图标。
删除所有与Oracle相关的目录,包括:
(1)、c:\Program file\Oracle目录。
(2)、ORACLE_BASE目录。
(3)、c:\Documents and Settings\系统用户名、LocalSettings\Temp目录下的临时文件。
对于异常都是将异常信息插入到数据表里面,然后程序界面显示出来。
你这样试下吧 \x0d\x0a一。我的电脑右键,选择Management,之后选择Services,进去后把这两个服务OracleService...,和Oracle..TNSListener打开,具体名字我记不住了\x0d\x0a二。点击 Run--输入cmd,在dos里输入sqlplus,接下来会提示你输入用户名和密码,你输入你所要连的那个数据库的用户名和密码,连接成功后,输入\x0d\x0aselect instance_name from v$instance\x0d\x0a只后显示出的名字你看下是不是ORCL,如果不是,就换成显示的那个(orcl不是系统默认的数据库) \x0d\x0a\x0d\x0a你把host 改成localhost试试\x0d\x0a\x0d\x0a你建的数据库的用户名是什么??