回答

收藏

使用Alter命令的Oracle存储过程

技术问答 技术问答 201 人阅读 | 0 人回复 | 2023-09-13

我正在尝试构建一个将表名称作为参数的Oracle存储过程。然后,该过程将重建表上的所有索引。
5 D+ p& J+ B/ D8 D! U: g4 \我的问题是从存储过程中使用ALTER命令时出现错误,好像PLSQL不允许该命令一样。
) o6 B5 Y+ O6 l+ @8 x: Z               
" T# [& {* t1 N解决方案:4 x2 P% P5 i7 [4 |
               
( E" k- m, A3 C3 l( v+ o$ ?5 Y
8 W, |; F: W" Y: z' L8 |8 @
  p7 f2 Z3 O0 e' a  N2 s                这有两种可能。首先,您必须将SQL视为动态SQL。其次,Oracle% B6 B! T# d. @6 M
DDL语句不能在事务中运行(或者,它们终止当前事务并且本身不能回滚)。这可能会影响您是否可以在存储过程中使用它们,或者可以在何处使用包含它们的存储过程。
* c8 L. ~  G/ v5 y0 N如果以上所有条件都不适用-可能容易误入歧途-我建议发布一些代码。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则