如果表不存在,我需要创建一个表,并在创建表时为其添加一行.
我是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; /
另请注意,当您插入表格时,我会重新指定列