gpt4 book ai didi

sql - PL/SQL 如果表不存在创建

转载 作者:行者123 更新时间:2023-12-02 07:26:12 25 4
gpt4 key购买 nike

你好,我使用 oracle SQL 开发人员

我已经创建了一个过程,我需要检查一个表是否存在,如果不存在我必须创建怎么办?

我试过了

DECLARE v_emp int:=0;
BEGIN
SELECT count(*) into v_emp FROM dba_tables;

if v_emp = 0 then
EXECUTE IMMEDIATE 'create table EMPLOYEE ( ID NUMBER(3), NAME VARCHAR2(30) NOT NULL)';
end if;
END;

但是因为找不到表而给我一个错误 00103

最佳答案

只需执行创建并观察抛出的异常。 Oracle 永远不会替换表的 DDL

declare
error_code NUMBER;
begin
EXECUTE IMMEDIATE 'CREATE TABLE EMPLOYEE(AGE INT)';
exception
when others then
error_code := SQLCODE;
if(error_code = -955)
then
dbms_output.put_line('Table exists already!');
else
dbms_output.put_line('Unknown error : '||SQLERRM);
end if;
end;

关于sql - PL/SQL 如果表不存在创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com