2017/07/28 工作日志

本以为昨日取得重大进展,只差一个存储过程就能解决问题,今天剧情大反转,可能需要大返工了。

上午针对存储过程研究了几个问题,收获挺大的

1、Oracle是大小写敏感的,并且建表时会自动转换为大写,可以通过添加双引号阻止这种转换。

2、修改表结构等情况会导致存储过程进入“INVALID”状态,需要重新编译

在dba_objects表里找到无效的对象,通过下面的语句编译

alter procedure <NAME> compile

编译失败还可以通过在命令页使用show errors procedure <NAME>查看具体原因,复制下来再粘贴,可以看到更多信息

3、接触到了job的概念

select * from user.jobs

4、存储过程:表或视图不存在的原因

a. 最蠢的,表真的不存在

b. 大小写,参见第一点

c. 权限问题,不是特别清楚

5、接触到了spool的概念

6、decode(条件,值1,返回值1,值2,返回值2,默认值)

if 

    条件=值1 

then

  return 返回值1

7、使用PL SQL的时候,如果是SQL窗口,需用用begin、end执行存储过程,在命令行窗口,如常

原文地址:https://www.cnblogs.com/LFeather/p/7252813.html