加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网_保定站长网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 如果表不存在则创建表,并在创建后输入一行

发布时间:2021-01-08 10:24:20 所属栏目:站长百科 来源:网络整理
导读:如果表不存在,我需要创建一个表,并在创建表时为其添加一行. 我是oracle和PL / SQL的新手,所以我基本上需要等效的以下T-SQL: IF OBJECT_ID('my_table','U') IS NULLBEGIN CREATE TABLE my_table(id numeric(38,0),date datetime) INSERT INTO my_table VALUE

如果表不存在,我需要创建一个表,并在创建表时为其添加一行.

我是oracle和PL / SQL的新手,所以我基本上需要等效的以下T-SQL:

IF OBJECT_ID('my_table','U') IS NULL
BEGIN
  CREATE TABLE my_table(id numeric(38,0),date datetime)    
  INSERT INTO my_table
  VALUES (NULL,0)
END

解决方法

如果你想检查表创建

DECLARE count NUMBER;
BEGIN
count := 0;
SELECT COUNT(1) INTO count from user_tables WHERE table_name= 'MY_TABLE';
IF COL_COUNT = 0 THEN
EXECUTE IMMEDIATE 'create table ....';
END IF;
END;
/

检查DML.请注意您必须分离您的pk列和值.

DECLARE count NUMBER;
BEGIN
count := 0;
SELECT COUNT(1) INTO count from MY_TABLE WHERE id= 0 and name='Something';
IF COL_COUNT = 0 THEN
EXECUTE IMMEDIATE 'insert into MY_TABLE (id,name) values(0,''something'') ';
END IF;
END;
/

另请注意,当您插入表格时,我会重新指定列

(编辑:天瑞地安资讯网_保定站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!