oralce判断表不存在的时候新建并插入
1.oracle建立存储过程-表不存在时建表
declare
v_flag number;
begin
select count(*) into v_flag from user_tables where table_name='TEST';
if v_flag = 0 then
EXECUTE IMMEDIATE 'CREATE TABLE TEST( "id" VARCHAR2(30 BYTE),"name" VARCHAR2(128 BYTE))';
else
INSERT INTO TEST ("id", "name") VALUES ('2', '111');
end if;
end;
2.阿里云RDS-存储过程动态生成表名添加字段
-- 创建存储过程添加字段
DROP PROCEDURE IF EXISTS add_batch_no;
DELIMITER //
CREATE PROCEDURE add_batch_no()
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE table_name VARCHAR(20);
WHILE (i < 120)
DO
SET @table_name = CONCAT("t_test_", SUBSTR(
REPLACE(DATE_ADD(STR_TO_DATE('20160101', '%Y%m%d'), INTERVAL i MONTH), '-', ''), 1, 6));
SET @sql = CONCAT("alter table ", @table_name, " ADD batch_no varchar(32) NULL COMMENT '批次号'");
PREPARE stmt FROM @sql;
EXECUTE stmt;
SET i = i + 1;
END WHILE;
END //;
-- 调用
CALL add_batch_no();
-- 删除
DROP PROCEDURE add_batch_no;