Oracle笔记

本文介绍了在Oracle数据库中调用存储过程时遇到的各种问题,如中文参数编码、时间格式错误、参数位置、返回值处理、临时表使用以及性能优化建议,包括异常处理和避免复杂业务逻辑中的批量处理。
摘要由CSDN通过智能技术生成

1、调用oracle存储过程时入参为中文时,入参类型定义须为VarChar类型,否则会乱码;

2、在查询数据的时候报“ORA-01861: literal does not match format string”或者“ORA-01861: 文字与格式字符串不匹配”这个错误。导致这个错误的原因是数据问题造成的,大部分都是因为时间格式的问题造成的;

3、调用存储过程传参时,输出参数必须放在最后,代码中参数赋值顺序须与存储过程保持一致;

4、存储过程有返回值,则必须给返回值赋值;

5、oralce数组索引从1开始;

6、调用存储过程时提示:OCI-22062: 输入字符串 [Ⅰ] 无效-,原因是因为定义的入参的数据类型与存储过程参数格式不一致;

7、两个日期相减默认获取间隔天数;

8、字符串转日期:to_date(字符串,'yyyy-mm-dd hh24:mi:ss'),其中hh24标识24小时制,不加24则标识12小时制;

9、字符拼接使用符号“||”

10、如果字段加密,查询出来插入其他表时会有问题

11、数据库修改表变量后,需重启webService变更的修改才会生效

12、oracle 临时表使用:(不建议使用,用起来很麻烦)

  • on commit delete rows; 说明数据行只有在当前事务中可见,也是默认值,事务提交后数据行将消失;创建的是事务级临时表。
  • on commit preserve rows; 说明数据行仅在当前会话中可见;创建的是会话级临时表。

    在存储过程中使用临时表时:由于存储过程中不能直接使用DDL语言,需要先拼接好sql语句,执行sql语句对临时表进行操作

13、存储过程和方法中不建议where 。。in()条件查询,建议使用表变量

14、exception异常处理必须包含在begin。。。end块中

例:

 for i in 1 .. 10 loop

    BEGIN

      if i =5 then

        select patient_id

          into str_sql

          from wait_bed_pats

         where wait_no = 123;

      end if;

    exception

      when others then

        o_ErrorInfo := o_ErrorInfo || i ||'-'||DBMS_UTILITY.FORMAT_ERROR_BACKTRACE()||';';

        continue;

    end;

  end loop;

15、业务逻辑复杂的流程,不建议使用存储过程中使用批量处理,影响数据库性能

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
孟老师 oracle笔记中记录了他在学习和应用Oracle数据库管理系统过程中的重要知识点和经验总结。这些笔记对他个人来说是非常宝贵的学习工具,并且也可以分享给其他学习者。 首先,孟老师的笔记内容包括了Oracle数据库的概述和架构。他对Oracle数据库系统的组成部分、存储结构、进程和线程等进行了详细的介绍。这使得他自己能够更好地理解Oracle数据库的运行原理,从而能够更好地进行数据库管理和优化。 其次,他的笔记中也包含了Oracle数据库的安装和配置过程。他记录了安装过程中可能遇到的问题和解决方法,还有如何正确配置数据库参数以满足具体的需求。这部分内容非常实用,它可以帮助他在以后的实际应用中更加高效地进行数据库的部署和配置。 此外,孟老师还记录了Oracle数据库的备份和恢复策略。他介绍了不同的备份方法,如完全备份、增量备份和重写备份,并指出了每种备份方法的适用场景。在笔记中,他还总结了一些关键的恢复指令和技巧,以便在意外故障发生时能够及时应对。 最后,他还在笔记中分享了一些常见问题和实践经验。这些问题和经验既包括技术层面的,如如何提高数据库性能和调优查询语句,也包括管理层面的,如如何规划数据库用户和权限管理。这些实践经验对于其他Oracle学习者来说是非常宝贵的参考资料。 总体来说,孟老师的Oracle笔记是一个非常有用的学习资源。它不仅记录了他个人的学习过程和经验总结,也为其他学习者提供了重要的参考和指导,帮助他们更好地理解和应用Oracle数据库管理系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值