admin 管理员组

文章数量: 887021


2023年12月25日发(作者:c语言二维数组作为函数参数传递)

存储过程和触发器实验心得

1、PLSQL创建储存过程编译出错不会给出错误提示,导致调用时提示储存过程处于无效状态。解决方案:使用SQLPLUS,不过SQLPLUS只会提示编译错误,不会提示具体原因,还可以使用Navicat工具,Navicat会给出更加详细的错误原因。

2、创建储存过程时,设置变量参数类型时,指定了字符长度导致创建失败。解决方案:直接设置变量数据类型,不设置其字符长度。

3、使用TO_DATE(SYSDATE,‘YYYY/MM/DD’)获取当前日期作为借阅日期导致调用借书储存过程失败,提示参数类型错误。解决方案:因为TO_DATE()函数是将字符类型转换成日期类型,而SYSDATE本来就是日期类型,所以导致调用失败,使用TO_DATE(TO_CHAR(SYSDATE,‘YYYY/MM/DD’),‘YYYY/MM/DD’)将SYSDATE转换成字符类型再转换成日期类型。

4、使用DBMS__LINE()函数输出提示,没有反应。解决方案:在SQLPLUS中需要先使用SET SERVEROUTPUT ON;打开输出模式才能看见输出,而在PLSQL中输出的内容在另一个Output窗口中,而不是没有反应。

5、创建自动递增借阅流水号的触发器时,使用NEW关键字改变借

阅流水号,导致创建触发器失败,解决方案:使用NEW关键字时,需要在前面加一个“:”号,如“:NEW.借阅流水号”。

6、调用修改后的借书储存过程时,发送错误,提示违反唯一约束条件以及COMMIT;不能再触发器中使用。解决方案:删除在触发器中的COMMIT;,然后删除序列“借阅流水号序列”,重新创建序列“借阅流水号序列”,并且设置初始值为8,因为借阅表中已经有借阅流水号1到7的数据了,然后创建序列时未指定初始值,序列默认从1开始,导致违反唯一约束条件,从而导致调用储存过程失败。四、实验心得体会通过本次实验,学会了储存过程以及触发器和序列的使用方法,对存储过程有了一个直观的认识,对触发器的工作原理和作用有了更加深刻的认识,使用触发器可以在修改数据前后规范数据,使数据规范化和标准化。使用储存过程将一系列的相关联的数据库操作封装成一个储存过程,使数据库操作更加简便,数据修改更加规范,数据库设计更加严谨。


本文标签: 过程 储存 导致 使用