我这里实测没有任何问题。 应该是具体数据库的问题。CREATE TABLE T188 ( MyDate DATE, Income NUMBER(3), COST NUMBER(3) );CREATE OR REPLACE VIEW ViewT188L1 AS SELECT MyDate, Income FROM T188;SELECT * FROM ViewT188L1; CREATE OR REPLACE VIEW ViewT188L2 AS SELECT MyDate FROM ViewT188L1;SELECT * FROM ViewT188L2;CREATE OR REPLACE VIEW ViewT188L1 AS SELECT MyDate FROM T188;DROP VIEW ViewT188L2;
还有存储过程也是,,建好了,再修改,就特别慢,老是执行中状态 create or replace procedure yosann_kotei Is begin
delete from YOSANN_KOTEI_FL;insert into YOSANN_KOTEI_FL select * from ( SELECT A.*, B.LB,B.LB2,C.KOTEI FROM YOSANN A left join YOSANN_LB B ON rtrim(ltrim(A. YOSANN_LB))= rtrim(ltrim(B.LB)) LEFT JOIN KOTEI_MASTA C ON ltrim(A.BUMONN)=C.BUMONN )C;end YOSANN_KOTEI;
应该是具体数据库的问题。CREATE TABLE T188
(
MyDate DATE,
Income NUMBER(3),
COST NUMBER(3)
);CREATE OR REPLACE VIEW ViewT188L1
AS SELECT MyDate, Income FROM T188;SELECT * FROM ViewT188L1;
CREATE OR REPLACE VIEW ViewT188L2
AS SELECT MyDate FROM ViewT188L1;SELECT * FROM ViewT188L2;CREATE OR REPLACE VIEW ViewT188L1
AS SELECT MyDate FROM T188;DROP VIEW ViewT188L2;
当你的视图b被访问,你修改a可能会遇到一些问题
因为我个人对ms sql不太熟悉,如果是oracle,将会导致b视图临时性的无效,使用的时候,需要自动编译,从而导致latch等待,所以不建议你这样的做法
create or replace procedure yosann_kotei Is
begin
delete from YOSANN_KOTEI_FL;insert into YOSANN_KOTEI_FL
select * from
(
SELECT A.*, B.LB,B.LB2,C.KOTEI FROM YOSANN A
left join YOSANN_LB B ON rtrim(ltrim(A. YOSANN_LB))= rtrim(ltrim(B.LB))
LEFT JOIN KOTEI_MASTA C ON ltrim(A.BUMONN)=C.BUMONN )C;end YOSANN_KOTEI;