一:版本低于Oracle 12c Release 2
-- 检查表是否存在,如果不存在则创建
DECLARE
table_exists NUMBER;
BEGIN
SELECT COUNT(*)
INTO table_exists
FROM user_tables
WHERE table_name = 'MY_TABLE';
IF table_exists = 0 THEN
EXECUTE IMMEDIATE '
CREATE TABLE MY_TABLE (
ID NUMBER PRIMARY KEY,
DATA VARCHAR2(100)
)';
END IF;
END;
-- 检查索引是否存在,如果不存在则创建
DECLARE
index_exists NUMBER;
BEGIN
SELECT COUNT(*)
INTO index_exists
FROM user_indexes
WHERE index_name = 'MY_INDEX';
IF index_exists = 0 THEN
EXECUTE IMMEDIATE '
CREATE INDEX MY_INDEX ON MY_TABLE(DATA)';
END IF;
END;
二: Oracle 12c Release 2或更高版本
CREATE TABLE IF NOT EXISTS GXHJ_RA_ST_LOCALITY_INSTCD_B (
LOCALITYSTCD VARCHAR2(20) NOT NULL PRIMARY KEY,
LOCALITYSTNM VARCHAR2(100),
COORDINATE NUMBER(3),
MODITIME TIMESTAMP(6),
PROVINCE VARCHAR2(20),
VALUE VARCHAR2(20)
);
COMMENT ON COLUMN GXHJ_RA_ST_LOCALITY_INSTCD_B.LOCALITYSTCD IS '交换管理单位代码';
COMMENT ON COLUMN GXHJ_RA_ST_LOCALITY_INSTCD_B.LOCALITYSTNM IS '交换管理单位名称';
COMMENT ON COLUMN GXHJ_RA_ST_LOCALITY_INSTCD_B.MODITIME IS '时间戳';
COMMENT ON COLUMN GXHJ_RA_ST_LOCALITY_INSTCD_B.PROVINCE IS '省份';
COMMENT ON COLUMN GXHJ_RA_ST_LOCALITY_INSTCD_B.VALUE IS '交换管理单位取值';
COMMENT ON TABLE GXHJ_RA_ST_LOCALITY_INSTCD_B IS '交换管理单位表';