SELECT ORDER_ID, EXTERNAL_SOURCE_REF, (case when FIXED_CCY_CD = BASE_CCY_CD then NON_BASE_CCY_CD else BASE_CCY_CD end) as COUNTERCURRENCYID, ORDER_STATE_ID,FIXING_DTS, TO_CHAR(FIXING_DTS, 'DD-MM-YYYY'),TO_CHAR(FIXING_DTS, 'HH24:MI'), (case when BANK_BUYS_FIXED_FG='Y' then 'S' else 'B' end) as SIDE, COMMENT_1_TXT from atable where ...
sql function (SELECT * from table( PKG_Name.FN_SPLIT('a,b,c',',') ) where column_value='a'):
FUNCTION FN_SPLIT (P_SOURCE_STR IN VARCHAR2, P_DELIMITER IN VARCHAR2) RETURN LIST_STR PIPELINED IS TARGER_LOCATION INT := 0; START_LOCATION INT := 1; SOURCE_LENGTH INT := 0; DELIMITER_LENGTH INT := 0; RESULT_STR VARCHAR2 (4000); BEGIN SOURCE_LENGTH := LENGTH (P_SOURCE_STR); DELIMITER_LENGTH := LENGTH (P_DELIMITER); WHILE TARGER_LOCATION < SOURCE_LENGTH LOOP TARGER_LOCATION := INSTR (P_SOURCE_STR, P_DELIMITER, START_LOCATION); IF TARGER_LOCATION = 0 THEN TARGER_LOCATION := SOURCE_LENGTH; RESULT_STR := SUBSTR (P_SOURCE_STR, START_LOCATION); PIPE ROW (RESULT_STR); IF START_LOCATION >= SOURCE_LENGTH THEN EXIT; END IF; ELSE RESULT_STR := SUBSTR (P_SOURCE_STR, START_LOCATION, TARGER_LOCATION - START_LOCATION); START_LOCATION := TARGER_LOCATION + DELIMITER_LENGTH; PIPE ROW (RESULT_STR); END IF; END LOOP; RETURN; END FN_SPLIT;
PROCEDURE DeleteCounterparty( P_REGION IN VARCHAR2 ) AS PCONUT_STR VARCHAR2(4000); PERROR_STR VARCHAR2(4000); BEGIN PERROR_STR := ''; SELECT listagg(column_value, ',' ) within GROUP (ORDER BY column_value) AS REGION INTO PCONUT_STR FROM TABLE(FN_SPLIT(P_REGION,',')) WHERE column_value NOT IN (SELECT a.region FROM (SELECT SOURCE_REGION || '|' || TARGET_REGION AS region FROM COUNTERPARTY_MAPPING) a); IF (NVL(length(PCONUT_STR),0) > 0) THEN PERROR_STR := PERROR_STR || 'Unsupported Operation: Risk Routing Counterparty Code(s) '''||PCONUT_STR||''' not existed. '; END IF; IF(NVL(length(PERROR_STR),0) > 0) THEN RAISE_APPLICATION_ERROR (-20001, PERROR_STR); ELSE DELETE FROM COUNTERPARTY_MAPPING where SOURCE_REGION || '|' || TARGET_REGION in (SELECT column_value FROM TABLE(FN_SPLIT(P_REGION,','))); END IF; END DeleteCounterparty; PROCEDURE AddBroker( P_INTERNAL_GROUP IN VARCHAR2, P_EXTERNAL_GROUP IN VARCHAR2, P_CLIENT_BROKER IN VARCHAR2, P_POSITION_BROKER IN VARCHAR2, P_USER IN VARCHAR2 ) AS PCONUT NUMBER; PERROR_STR VARCHAR2(4000); BEGIN PERROR_STR := ''; SELECT COUNT(*) INTO PCONUT FROM BROKER_MAPPING WHERE INTERNAL_GROUP=P_INTERNAL_GROUP and EXTERNAL_GROUP=P_EXTERNAL_GROUP; IF (PCONUT>0) THEN RAISE_APPLICATION_ERROR (-20001, 'Unique Constraint: Internal Trader Broker Mapping '''||P_INTERNAL_GROUP||''' and External Trader Broker Mapping '''||P_EXTERNAL_GROUP|| ''' already existed.'); ELSE SELECT COUNT(*) INTO PCONUT FROM GROUP_MAPPING WHERE GROUP_ID=P_INTERNAL_GROUP; IF (PCONUT=0) THEN PERROR_STR := PERROR_STR || 'Unsupported Operation: Trader Group(s) '''||P_INTERNAL_GROUP||''''; END IF; SELECT COUNT(*) INTO PCONUT FROM GROUP_MAPPING WHERE GROUP_ID=P_EXTERNAL_GROUP; IF (PCONUT=0) THEN IF (NVL(length(PERROR_STR),0) > 0) THEN PERROR_STR := PERROR_STR || ' and ''' || P_EXTERNAL_GROUP ||''' both do not exist in Risk Trader Group Mapping.'; ELSE PERROR_STR := PERROR_STR || 'Unsupported Operation: Trader Group(s) '''||P_EXTERNAL_GROUP||''' does not exist in Risk Trader Group Mapping.'; END IF; ELSE IF (NVL(length(PERROR_STR),0) > 0) THEN PERROR_STR := PERROR_STR || ' does not exist in Risk Trader Group Mapping.'; END IF; END IF; IF (NVL(length(PERROR_STR),0) > 0) THEN RAISE_APPLICATION_ERROR (-20001, PERROR_STR); ELSE INSERT INTO BROKER_MAPPING(INTERNAL_GROUP,EXTERNAL_GROUP,CLIENT_BROKER,POSITION_BROKER,CREATED_BY,CREATED_DT,MODIFIED_BY,MODIFIED_DT) VALUES(P_INTERNAL_GROUP,P_EXTERNAL_GROUP,P_CLIENT_BROKER,P_POSITION_BROKER,P_USER,CURRENT_DATE,P_USER,CURRENT_DATE); END IF; END IF; END AddBroker; PROCEDURE DeleteGroupInfo( P_GROUP IN VARCHAR2 ) AS PCONUT_STR VARCHAR2(4000); PERROR_STR VARCHAR2(4000); BEGIN PERROR_STR := ''; SELECT listagg(column_value, ',' ) within group (order by column_value) as GROUP_ID INTO PCONUT_STR FROM TABLE(FN_SPLIT(P_GROUP,',')) where column_value not in ( SELECT distinct GROUP_ID from GROUP_MAPPING WHERE GROUP_ID in (SELECT * FROM TABLE(FN_SPLIT(P_GROUP,','))) ); IF (NVL(length(PCONUT_STR),0) > 0) THEN PERROR_STR := PERROR_STR || 'Unsupported Operation: Risk Trader Group Code '''||PCONUT_STR||''' not existed. '; END IF; SELECT listagg(GROUP_ID, ',' ) within group (order by GROUP_ID) as GROUP_ID INTO PCONUT_STR from GROUP_MAPPING WHERE GROUP_ID in ( select distinct INTERNAL_GROUP from BROKER_MAPPING WHERE INTERNAL_GROUP in (SELECT * FROM TABLE(FN_SPLIT(P_GROUP,','))) union select distinct EXTERNAL_GROUP from BROKER_MAPPING WHERE EXTERNAL_GROUP in (SELECT * FROM TABLE(FN_SPLIT(P_GROUP,','))) ); IF (NVL(length(PCONUT_STR),0) > 0) THEN PERROR_STR := PERROR_STR || 'Constraint Error: '''||PCONUT_STR||''' has been referred by Broker Mapping'; END IF; IF(NVL(length(PERROR_STR),0) > 0) THEN RAISE_APPLICATION_ERROR (-20001, PERROR_STR); ELSE DELETE FROM GROUP_MAPPING WHERE GROUP_ID in (SELECT * FROM TABLE(FN_SPLIT(P_GROUP,','))); END IF; END DeleteGroupInfo;
public Map<String, Object> executeNotCloseConn(AbstractCallableStatement procedure,Connection conn) throws SQLException { if(procedure == null) { throw new SQLException("StoredProcedure is null."); } CallableStatement cs = null; Map<String, Object> returnedResults = null; try { cs = conn.prepareCall(procedure.getCallString()); CallableStatement csToUse = this.prepareCallableStatement(cs, procedure.getDeclaredParameters()); csToUse.execute(); returnedResults = extractOutputParameters(csToUse, procedure.getDeclaredParameters()); } catch (SQLException e) { this.rethrow(e, procedure.getCallString(), procedure.getDeclaredParameters()); }finally { DBUtils.closeQuietly(cs); } return returnedResults; } public abstract class DatabaseAccessSupport { private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseAccessSupport.class); private DataSourceFactory dataSourceFactory; private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public JdbcTemplate getJdbcTemplate(){ if (jdbcTemplate == null) { jdbcTemplate = new JdbcTemplate(dataSourceFactory.getDataSource()); LOGGER.trace("JdbcTemplate set to [{}]", jdbcTemplate); } return jdbcTemplate; } public void setDataSourceFactory(final DataSourceFactory dataSourceFactory) { this.dataSourceFactory = dataSourceFactory; } } /** * @param tradeIds * @return Map<TRADE_ID, FIXML_TEXT> */ public Map<String, String> findAllFIXML(final Collection<String> tradeIds) { if (tradeIds.isEmpty()) { return new HashMap<String, String>(); } NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(super.getJdbcTemplate()); MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters.addValue("ids", tradeIds); try { return jdbcTemplate.query(QUERY_FIXML_SQL, parameters, new ResultSetExtractor<Map<String, String>>() { @Override public Map<String, String> extractData(ResultSet rs) throws SQLException, DataAccessException { Map<String, String> idMap = new HashMap<String, String>(); while (rs.next()) { idMap.put(rs.getString(1), rs.getString(2)); } return idMap; } }); } catch (Exception e) { throw new OMSDBConnectionException(e); } }
exp rpadba/rpadba@${host} file=E:\FXAG_DB_Dump\rpadba.dump owner=('RPADBA') log=E:\FXAG_DB_Dump\rpadba.log imp rpadba/rpadba@${host} file=E:\FXAG_DB_Dump\rpadba.dump log=E:\FXAG_DB_Dump\rpadba_imp.log fromuser=RPADBA touser=RPADBA GRANT CONNECT TO $schema; GRANT CREATE VIEW TO $schema; GRANT DEBUG ANY PROCEDURE TO $schema; GRANT DEBUG CONNECT SESSION TO $schema; GRANT RESOURCE TO $schema; GRANT UNLIMITED TABLESPACE TO $schema; TNS_ADMIN: C:\app\ export GTH DB: exp gthdba/gthdba@${host} file=c:\FXAG_DB_Dump\rpadba.dump owner=('RPADBA') log=E:\FXAG_DB_Dump\rpadba.log