我是序列的新手,我需要知道,是否有可能在序列中使用if else块?要检查序列是否存在,如果block和in else块重新创建相同的序列,则会丢弃。
答案 0 :(得分:0)
你的问题对我来说并不完全清楚。我试图按照我的理解回复。
是否可以按顺序使用if else?
如果通过上面的陈述你试图知道我们是否可以在序列DDL的主体内使用if else构造,那么答案是 - 不,我们不能。序列DDL有一些预定义的参数,我们在创建序列时需要提及这些参数。 if-else构造只能写入plsql块,而序列DDL没有提供任何plsql块而不像trigger。因此,if-else不能在序列中提及。
要检查序列是否存在,如果是块,则在其中阻塞 创建相同的序列。
从上面的语句来看,你似乎在试图知道我们是否可以在plsql块中创建序列,因为上面提到的if-else检查的流程只能在plsql块中完成。答案是 - 是的,可以使用execute immediate在plsql块中创建序列。请参阅下面的代码 -
if seq_exists then
EXECUTE IMMEDIATE('drop sequence seq');
else
EXECUTE IMMEDIATE('create sequence seq start with 1 cache 500');
end if;