Sql 在存储过程中执行视图
是否可以使用存储过程执行视图 我的过程应该首先运行视图(总共有两个),然后将这两个视图数据合并到一个不同的表中,以应用转换 大概是这样的:Sql 在存储过程中执行视图,sql,oracle,plsql,Sql,Oracle,Plsql,是否可以使用存储过程执行视图 我的过程应该首先运行视图(总共有两个),然后将这两个视图数据合并到一个不同的表中,以应用转换 大概是这样的: create or replace procedure procname as begin here my views should get triggered and then starts my execute immediate 'truncate table transtable'; insert ... ..... ... exception
create or replace procedure procname as
begin
here my views should get triggered and then starts my
execute immediate 'truncate table transtable';
insert
...
.....
...
exception
end;
什么叫“使用存储过程执行视图”?如何“触发”视图
如果您想询问是否可以在过程中创建视图,那么可以使用立即执行。不过,在甲骨文中,这是非常不寻常的做法。我们首先创建视图(在SQL级别),在任何地方使用它们(在SQL或PL/SQL中),这就是我建议您做的
若你们问为什么,原因很简单:动态SQL不可伸缩,很难维护和调试,而且——若其中并没有任何“动态”,就不要使用它
此外,如果您稍后在代码中引用这些视图(并且它们在编译时不存在),PL/SQL过程将无法使用ORA-00942(表或视图不存在),这意味着代码的其余部分也应该是动态的
在我看来,地平线上的噩梦
从您目前发布的内容来看,我不明白您为什么要坚持动态地这样做:
- 在SQL级别“立即”创建视图
- 在程序中使用它们
视图从中选择,而不是执行、运行或触发。请更新您的原始帖子,提供更多关于“触发”的详细信息。你到底想在这里干什么?