PLSQL Object Dependence
来源:互联网 发布:软件功能规格说明书 编辑:程序博客网 时间:2024/06/18 05:28
CREATE VIEW V_EMP AS SELECT * FROM EMPLOYEES; ビューが作成されました。
/**********************************************/-- V_EMPビューに依存するファンクションFUNC1/**********************************************/CREATE OR REPLACE FUNCTION FUNC1 RETURN NUMBERIS NUM NUMBER;BEGIN SELECT SUM(SALARY) INTO NUM FROM V_EMP; RETURN NUM;END;/ ファンクションが作成されました。
/***************************************************/-- ファンクションFUNC1に依存するプロシージャPROC1/***************************************************/CREATE OR REPLACE PROCEDURE PROC1ISBEGIN DBMS_OUTPUT.PUT_LINE(FUNC1);END;/ プロシージャが作成されました。
SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTSWHERE OBJECT_NAME IN ('EMPLOYEES','V_EMP','FUNC1','PROC1')/ OBJECT_NAM OBJECT_TYPE STATUS---------- ------------------- -------EMP TABLE VALIDV_EMP VIEW VALIDFUNC1 FUNCTION VALIDPROC1 PROCEDURE VALID
RENAME EMPLOYEES TO EMPLOYEES2; 表名が変更されました。
1 SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTS 2* WHERE OBJECT_NAME IN ('EMPLOYEES2','V_EMP','FUNC1','PROC1')SQL> / OBJECT_NAM OBJECT_TYPE STATUS---------- ------------------- -------EMPLOYEES2 TABLE VALIDV_EMP VIEW INVALIDFUNC1 FUNCTION INVALIDPROC1 PROCEDURE INVALID
EXEC PROC1 行1でエラーが発生しました。:ORA-06550: 行1、列7:PLS-00905: オブジェクト'HR.PROC1'が無効です。ORA-06550: 行1、列7:PL/SQL: Statement ignored
SQL> RENAME EMPLOYEES2 TO EMPLOYEES; 表名が変更されました。
SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTSWHERE OBJECT_NAME IN ('EMPLOYEES','V_EMP','FUNC1','PROC1')/ OBJECT_NAM OBJECT_TYPE STATUS---------- ------------------- -------EMPLOYEES TABLE VALIDV_EMP VIEW INVALIDFUNC1 FUNCTION INVALIDPROC1 PROCEDURE INVALID
では再コンパイルをするまで、PROC1プロシージャは実行できないのかというと、そうではありません。INVALID状態のプログラムを実行すると自動的に再コンパイルが行われるからです。その場合、依存性の川上の方から順番に再コンパイルされます。すなわち、まずV_EMPビューが再コンパイルされてVALIDになる。次に、FUNC1ファンクションが再コンパイルされてVALIDになる。そしてPROC1プロシージャが再コンパイルされてVALIDになり実行されるわけです。
SET SERVEROUTPUT ON --画面出力を可能にしてEXEC PROC1 -- PROC1プロシージャをコール
SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTSWHERE OBJECT_NAME IN ('EMPLOYEES','V_EMP','FUNC1','PROC1')/ OBJECT_NAM OBJECT_TYPE STATUS---------- ------------------- -------EMPLOYEES TABLE VALIDV_EMP VIEW VALIDFUNC1 FUNCTION VALIDPROC1 PROCEDURE VALID
0 0
- PLSQL Object Dependence
- PLSQL Show Ojbect Dependence
- dependence walker
- Correlation and dependence
- android gradle task dependence
- Dependence Inversion Principle
- PLSQL
- PLSQL
- PLSQL
- plsql
- plsql
- plsql
- plsql
- plsql
- PLSQL
- PLsql
- PLsql
- plsql
- Android笔记之签名相关
- 关于Idea写的maven项目如何检出到myeclipse中
- Eclipse中项目各资源目录的含义
- React Native制作圆形加载条
- tornado协程(coroutine)原理
- PLSQL Object Dependence
- Spark on Yarn集群搭建
- Linux基础入门(第三弹:用户管理)
- Centos LVS DR模式详细搭建过程
- YII 安装
- numpy库函数:reshape用法
- PAT解题报告A1087
- MatLab中ln函数怎么表示?
- 学习微信小程序--组件(swiper)