
正文
oracle存储过程异常输出,oracle存储过程异常处理问题
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle存储过程提示编译完成但存在错误,如何查看错误
可用第三方工具检查错误。如以下存储过程:其中第六行故意少写了一个分号。然后执行后,会提示完成,这时可以去左边的树中找到这个存储过程,显示是有个红叉的。这时,可以右键,选择编辑。然后打开页面的最下方会显示如下信息。
其中username ,counter ,rolename 是传入参数,传入参数不能赋值,即第8行语句有问题,建议删除。建议在plsql工具中编辑,方便。
当出现警告或者错误的时候,使用show error 命令,可以查看错误的具体信息,在信息中可以定位错误的具体位置。你的问题是:【endif;】不能写在一起,【end if;】是正确的。类似的还有【end loop】等。
emp_id CHAR,increase NUMBER),改为CREATE OR REPLACE PROCEDURE raise_salary(emp_id emp.eno%rowtype,increase emp.sal%rowtype)看看还出错不。
相关问答
Q1: oracle存储过程如何输出信息
可用DBMS_OUTPUT.PUT_LINE()对存储过程的进行输出。
首先登录到数据库中,点击右上角有个工具栏,点击工具栏上的tools。选择导出用户对象,点击tools工具之后,向下查找Export User Objects功能,通过这个功能导出数据。选择需要导出的表或者序列或者存储过程等。
新建一个存储过程(Procedure)。修改存储过程,这个存储过程有一个输入参数(pid)跟一个输出参数(name),即通过用户id查询用户名称并将名称返回。调试存储过程,找到刚刚创建的存储过程右击并点击【test】选项。
假设第一个参数为in参数,每二个参数为out参数:variable x number;//定义一个绑定变量 exec 过程(1,:x)//1为输入参数,x为输出参数,过程执行后x就得到输出值了。
略微复杂,需要存储过程实现。创建输出路径,比如你要在d盘test目录下输出,你就先在d盘根目录下建立一个test的目录。
不知道你是不是想输出存储过程里面执行的语句,验证存储过程正确性或者存储过程中执行语句的速度。如果是java程序获取存储过程的语句,在存储过程中定义一个变量用来存放需要执行的语句,执行这条语句用EXECUTE IMMEDIATE。
Q2: oracle存储过程中遇到主键冲突会抛出异常还是继续执行
1、使用begin end块把update语句的异常捕获后处理一下,就只会影响条记录,而不是回滚整批数据。
2、不会,直接抛出异常,并终止。存储过程是预编译sql的,主题出错会导致整个存储过程执行失败。
3、begin insert …… ;--可能出错的地方 exception when others then null;--出错后跳到这里来。end;将可能出错语句包裹起来,抓异常,不影响往下执行。
4、无效状态有两种可能,一种是你的存储过程编辑没有成功,创建了,但里面有语法错误。 还有一种是存储过程使用的表有结构上的改变,需要重新编译一下。 你重新编译一下,如果不成功,就是有语法问题,你需要修改存储过程。
5、语法有问题程序编译都过不去,程序无法运行何来存储过程停掉?除非是逻辑错误或者数据异常引起错误。如果你加上了异常处理功能,可以捕捉到错误,不至于使程序停止运行。
6、这个是不可能的。Sequense是严格的序列号,除非被循环了。同时并发的要求SEQ,数据库的锁机制会将用户排队,保证获得的序列是不一样的数字。
关于oracle存储过程异常输出和oracle存储过程异常处理问题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






