Oracle中出现无效对象,就是因为在创建函数或存储过程等,里边的内容书写不正确导致。如果要重新编译,需要先修正错误,然后编译。
目前创新互联已为成百上千家的企业提供了网站建设、域名、虚拟空间、网站改版维护、企业网站设计、秭归网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
工具:Oracle 10g、PL/SQL
步骤:
1、在PL/SQL中打开出现编译错误的函数或存储过程,这里以存储过程为例。
2、右键点击该存储过程,选择“编辑”。
3、根据错误提示,找到错误,并修改错误。
4、改正错误后,点击左上方的“齿轮”状按钮。
5、运行成功后,则该存储过程就会变为编译成功的状态。
你好,希望我的回答对你有所帮助。
因为你所创建的三个视图都依赖于同一个表userinfo,当你修改了原有表的表结构时不会出现三个视图都画红叉的错误,因为alter语句是DDL语句,已经自动提交了,所以影响了视图中的表结构,此时视图本身并没有被修改,而其所依赖的表已经修改;而在修改视图后,视图所依赖的表已经被修改,然后再修改视图,保存后当然不会出错了,你说呢?
select x.考生姓名,x.考试批次,x.考试开始 数学考试开始,x.考试结束 数学考试结束,
x.考场 数学考场,x.座号 数学座号,
y.考试开始 语文考试开始,y.考试结束 语文考试结束,y.考场 语文考场,y.座号 语文座号
z.考试开始 英语考试开始,z.考试结束 英语考试结束,z.考场 英语考场,z.座号 英语座号
from (select 考生姓名,考试批次,考试开始,考试结束,考场,座号 from 表 where 学科='数学') x,
(select 考生姓名,考试批次,考试开始,考试结束,考场,座号 from 表 where 学科='语文') y,
(select 考生姓名,考试批次,考试开始,考试结束,考场,座号 from 表 where 学科='英语' ) z
where x.考生姓名=y.考生姓名 and x.考生姓名=z.考生姓名 and
x.考试批次=y.考试批次 and x.考试批次=z.考试批次
order by 1;
你在创建视图的时候,是select t.*,而在这个语法执行的时候,ORACLE会自动的把你的语法解析成详细的查询语法,就和你平时使用select *查询一样,这个型号数据库也是自动解析成from后边表的字段的。所以这个创建语法,实际上是解析后的语法,这个也没什么为什么,因为实际你创建视图的语法,是ORACLE分析你原是语法之后得到的SQL语句创建的。
再用个存储过程把这些步骤全写下来, 写个job让他每天晚上定时执行一次
create or replace view 总数据视图 as
select 个人编号,账号,卡号,钱包余额,交易类型,交易次数,交易金额,身份,部门,状态,证件类型,证件号码,有效期,卡片类型,流水号,站点,交易额,商户,终端号,到账时间,钱包名称
from 总数据
create or replace view 卡户余额需要数据视图 as
select 个人编号,账号,卡号,钱包余额
from 卡户余额需要数据
create or replace view 月消费需要数据视图 as
select 交易类型,交易次数,交易金额
from 月消费需要数据
where 交易日期 between 交易开始日期 and 交易结束日期
。。。。。。。