如果名为MY_SEQ的特定序列退出,我需要找到使用PL/SQL.如果序列存在,则删除它并创建一个新序列,否则只创建一个新序列.
EG(伪代码)
IF EXISTS(MY_SEQ) THEN
BEGIN
DROP SEQUENCE MY_SEQ;
CREATE SEQUENCE MY_SEQ...
END;
ELSE
BEGIN
CREATE SEQUENCE MY_SEQ;
END;
Run Code Online (Sandbox Code Playgroud)
Vin*_*rat 10
您可以检查字典视图ALL_SEQUENCES
(或者USER_SEQUENCES
如果正在执行的用户是所有者),例如:
BEGIN
FOR cc IN (SELECT sequence_name as sequence_exists
FROM all_sequences
WHERE sequence_owner = :seq_owner
AND sequence_name = :seq_name) LOOP
-- sequence exists, drop it (at most there will be *one* sequence)
EXECUTE IMMEDIATE 'DROP SEQUENCE XXX';
END LOOP;
-- create sequence
EXECUTE IMMEDIATE 'CREATE SEQUENCE XXX';
END;
Run Code Online (Sandbox Code Playgroud)