import java.sql.*; public class CreatePositionTable { public static void main(String[] args) { String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; String user = "system"; String password = "Root123456"; String createTable = "CREATE TABLE T_POSITION (" + " ID NUMBER(19) NOT NULL," + " POSITION_CODE VARCHAR2(64) NOT NULL," + " POSITION_NAME VARCHAR2(128) NOT NULL," + " POSITION_TYPE VARCHAR2(32) NOT NULL," + " DIRECTION VARCHAR2(16) NOT NULL," + " QUANTITY NUMBER(18,4) DEFAULT 0," + " PRICE NUMBER(18,4) DEFAULT 0," + " MARKET_VALUE NUMBER(18,4) DEFAULT 0," + " ACCOUNT_CODE VARCHAR2(64)," + " PRODUCT_CODE VARCHAR2(64)," + " STATUS VARCHAR2(16) DEFAULT 'ACTIVE'," + " VERSION NUMBER(10) DEFAULT 0," + " DELETED NUMBER(1) DEFAULT 0," + " CREATE_TIME TIMESTAMP DEFAULT SYSDATE," + " UPDATE_TIME TIMESTAMP DEFAULT SYSDATE," + " CONSTRAINT PK_T_POSITION PRIMARY KEY (ID)," + " CONSTRAINT UK_T_POSITION_CODE UNIQUE (POSITION_CODE)" + ")"; String createIndex1 = "CREATE INDEX IDX_T_POSITION_TYPE ON T_POSITION(POSITION_TYPE)"; String createIndex2 = "CREATE INDEX IDX_T_POSITION_STATUS ON T_POSITION(STATUS)"; String createIndex3 = "CREATE INDEX IDX_T_POSITION_ACCOUNT ON T_POSITION(ACCOUNT_CODE)"; String createIndex4 = "CREATE INDEX IDX_T_POSITION_PRODUCT ON T_POSITION(PRODUCT_CODE)"; try (Connection conn = DriverManager.getConnection(url, user, password)) { try (Statement stmt = conn.createStatement()) { // Try to drop first if exists try { stmt.execute("DROP TABLE T_POSITION"); System.out.println("Dropped old table T_POSITION"); } catch (SQLException ignored) { // Table didn't exist } stmt.execute(createTable); System.out.println("Created table T_POSITION successfully!"); try { stmt.execute(createIndex1); System.out.println("Created index IDX_T_POSITION_TYPE"); } catch (SQLException e) { System.out.println("Index IDX_T_POSITION_TYPE: " + e.getMessage()); } try { stmt.execute(createIndex2); System.out.println("Created index IDX_T_POSITION_STATUS"); } catch (SQLException e) { System.out.println("Index IDX_T_POSITION_STATUS: " + e.getMessage()); } try { stmt.execute(createIndex3); System.out.println("Created index IDX_T_POSITION_ACCOUNT"); } catch (SQLException e) { System.out.println("Index IDX_T_POSITION_ACCOUNT: " + e.getMessage()); } try { stmt.execute(createIndex4); System.out.println("Created index IDX_T_POSITION_PRODUCT"); } catch (SQLException e) { System.out.println("Index IDX_T_POSITION_PRODUCT: " + e.getMessage()); } } System.out.println("Done!"); } catch (SQLException e) { System.err.println("Error: " + e.getMessage()); e.printStackTrace(); } } }