一:版本低于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 '交换管理单位表';