回答

收藏

oracle选择内部调用存储过程

技术问答 技术问答 63 人阅读 | 0 人回复 | 2023-09-14

我正在处理一个查询(一个查询)SELECT),我需要将查询结果插入表中。在插入之前,我需要做一些检查,如果所有列都有效,我会插入。
( r: X% k3 N) R. O) E  \8 z检查是在存储过程中完成的。同样的过程也用于其他地方。因此,我正在考虑使用相同的检查过程。
- e( P- n( K  v. Q/ j8 b0 s检查程序并插入值。# s: b1 T/ F: s& {% c
我试图在SELECT内部调用过程,但不起作用。
8 T( e& y- T0 D8 J% w$ A* JSELECT field1,field2,myproc(field1,field2)from MYTABLE.这种代码不起作用。; }8 W6 @5 {" w4 ^* {5 O
我认为这个操作可以用游标来完成,但我想避免使用游标。我正在寻找最简单的解决方案。
& m. K0 Q! B# A/ p1 M; F- H; h1 X2 p有人有什么想法吗?3 v6 M$ h; h( [' i' [4 j* {" o
                                                                ' v& m0 i" J- u8 ]% [
    解决方案:                                                               
* [+ S5 E! m- O/ X! Y                                                                使用PL / SQL循环:
- K' t6 R$ E+ e: f7 @BEGIN   FOR c IN (SELECT field1,field2 FROM mytable) LOOP       my_proc(c.field1,c.field2);   END LOOP;END;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则