`
qtlkw
  • 浏览: 307269 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

sql用法

 
阅读更多
case 用法:

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&lt;TRADE_ID, FIXML_TEXT&gt;
	 */
	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 
分享到:
评论

相关推荐

    dede_sql用法

    ### dede_sql用法详解 #### 一、概述 在织梦CMS(DedeCMS)系统中,`dede_sql`是一个非常实用的功能模块,它允许开发者直接在模板中执行自定义的SQL查询语句,并将查询结果动态展示出来。这对于实现更为复杂的数据...

    SQL用法大全.chm

    主要介绍SQL用法大全

    不同数据库sql用法

    mysql,oracel,sqlserver,db2 数据库sql用法

    sql基本用法

    数据库操作的sql用法,很齐全,可以直接使用。

    SQLServer SQL经典SQL用法,很多用法提高效率,工具SQL

    本SQL文件是在多年的工作经验中总结后编写的;因为业务复杂的需要;需要我们考虑性能、效率、精简的实现我们的SQL代码;该SQL技巧文档希望对你有很大的帮助。

    sql使用方法

    使用方法用于使用sql运用的一些问题,很好的解决一些sql的问题

    经典SQL用法

    以下是对这些经典SQL用法的详细解释: 1. **SQL基础概念**:SQL主要包括数据查询语言(DQL)、数据操作语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。DQL用于查询数据,DML用于插入、更新和删除数据,...

    dede sql使用技巧

    #### 三、使用方法示例 1. **调用特定会员发布的文章内容** ```php {dede:sql sql='Select * from dede_archives where mid=1'} [field:id/]' target='_blank'&gt;[field:title/] {/dede:sql} ``` - **解释**...

    很全的sql用法集,不错的哦

    很全的sql用法集,分享给大家 。值嘚收藏!

    sql中exists的用法

    SQL 中 EXISTS 的用法简介 exists 是 SQL 中最常用的子查询操作符之一,用于检测子查询是否返回至少一个记录。exists 的使用场景非常广泛,包括对多表之间的关系进行查询、检测记录的存在性等。 在 SQL 中,exists...

    SQL Server使用方法

    SQL Server 使用方法 SQL Server 是微软公司开发的一种关系数据库管理系统,广泛应用于企业级数据库管理。这里将详细介绍 SQL Server 的使用方法,包括企业管理器、创建数据库、创建表、编辑数据和查询分析器等内容...

    Sybase SQL anywhere10全部学习资料

    非常详细. 00.sybase中文安装指南FOR WIN 01.SQL Anywhere 10简介 02SQL Anywhere 10更改和升级 03SQL Anywhere 服务器数据库管理 04SQL Anywhere 服务器SQL 用法 05SQL Anywhere 服务器SQL 参考...

    LINQ TO SQL用法讲解

    LINQ TO SQL的用法讲解,深入浅出,对理解LINQ和SQL访问有较好的参考价值

    SQLTracker监视使用Oracle数据库的应用程序

    SQLTracker是一款专为监视使用Oracle数据库的应用程序设计的工具,尤其在Windows 7和Windows 10 64位操作系统上表现出色。该工具的主要目标是帮助系统管理员、DBA(数据库管理员)以及开发人员更好地理解和优化应用...

    sql基本用法 标准sql和特殊数据库sql

    SQL的基本用法包括数据查询、数据插入、数据更新和数据删除,同时,不同的数据库系统如Oracle和SQL Server等会有其特定的扩展和优化。 1. 数据查询:SQL中最基本的操作就是查询数据,这主要通过`SELECT`语句实现。...

    SQL join 完全用法

    SQL join 完全用法 SQL join 完全用法 学习sql join

    Oracle的SQL监视工具SQLTracker

    通常,一些较旧的.NET应用程序需要3.5框架才能运行,但SQLTracker的这个版本已经解决了这一依赖性,使得在最新的操作系统上无需额外安装就能直接使用,简化了用户的部署过程。 在Oracle数据库管理中,SQL性能优化是...

    SQLServer动态SQL语句的用法

    SQL Server 动态 SQL 语句的用法 SQL Server 中的动态 SQL 语句是一种灵活的查询方式,它可以根据不同的情况生成不同的 SQL 语句。动态 SQL 语句可以用来实现复杂的业务逻辑,提高查询效率和灵活性。 普通 SQL ...

    SQL中like的用法

    SQL语句 SELECT LIKE like用法详解 包含你不知道的用法 在SQL结构化查询语言中,LIKE语句有着至关重要的作用。

    创意sql--------

    【创意SQL】是一种在数据库管理领域中用于解决复杂查询、数据挖掘或优化数据处理的创新性SQL技巧。它不仅局限于标准SQL语法,还...不断学习和实践,你将能够发现更多巧妙的SQL使用方法,解决棘手的问题,提升工作效率。

Global site tag (gtag.js) - Google Analytics