Oracle临时表应用

本文详细介绍了在Oracle数据库中创建全局临时表的方法,包括`CREATEGLOBALTEMPORARYTABLE`语句的用法,以及`ONCOMMITPRESERVE`和`ONCOMMITDELETEROWS`选项的应用,以处理事务提交后的自动清理行为。
摘要由CSDN通过智能技术生成

1.参考

oracle两种临时表的创建及使用方法_oracle 临时表-CSDN博客

【SQL】全局临时表 GLOBAL TEMPORARY TABLE-CSDN博客

2.语句

CREATE GLOBAL TEMPORARY TABLE tablename (columns) [ ON COMMIT PRESERVE | DELETE ROWS ]

3.应用

CREATE GLOBAL TEMPORARY TABLE "SEC_BASE" 
   (	
    "C_SEC_CODE" VARCHAR2(100) DEFAULT ' ' NOT NULL ENABLE, 
	"C_SEC_NAME" VARCHAR2(200) DEFAULT ' ' NOT NULL ENABLE, 
	"C_SEC_MKT_CODE" VARCHAR2(30) DEFAULT ' ' NOT NULL ENABLE, 
	"C_SEC_ISIN_CODE" VARCHAR2(40), 
	"C_MKT_CODE" VARCHAR2(40) DEFAULT ' ' NOT NULL ENABLE, 
	"C_SEC_VAR_CODE" VARCHAR2(40) DEFAULT ' ' NOT NULL ENABLE, 
	"C_DC_CODE" VARCHAR2(40) DEFAULT ' ' NOT NULL ENABLE, 
	"N_PRICE_FCR" NUMBER(18,4) DEFAULT 1 NOT NULL ENABLE, 
	"C_SEC_CODE_TRG" VARCHAR2(100), 
	"N_AMOUNT_HD" NUMBER(18,4) DEFAULT 1 NOT NULL ENABLE, 
	"N_FV_ISSUE" NUMBER(30,15) DEFAULT 1 NOT NULL ENABLE, 
	"D_TO_LIST" DATE DEFAULT TO_TIMESTAMP('1900-01-01','YYYY/MM/DD') NOT NULL ENABLE, 
	"D_OFF_LIST" DATE DEFAULT TO_TIMESTAMP('1900-01-01','YYYY/MM/DD') NOT NULL ENABLE, 
	"N_BLXS" NUMBER(15,8), 
	"C_JCJG" VARCHAR2(120), 
	"N_UPPER_LIMIT" NUMBER(15,8), 
	"N_LOWER_LIMIT" NUMBER(15,8), 
	"C_INTERVAL_TIME" VARCHAR2(4000), 
	"C_INTERVAL_DAY" VARCHAR2(20), 
	"C_SETT_ORG" VARCHAR2(100), 
	"N_XSFWFL" NUMBER(18,8), 
	"C_TGR_CODE" VARCHAR2(50), 
	"C_TGR_NAME" VARCHAR2(50), 
	"D_TO_LIST_ZQ" DATE DEFAULT TO_TIMESTAMP('1900-01-01','YYYY/MM/DD'), 
	"C_FXJG_CODE" VARCHAR2(20) DEFAULT ' ', 
	"C_MAIN_PROP" VARCHAR2(20) DEFAULT ' ', 
	"C_GUAR_TYPE" VARCHAR2(20), 
	"C_FINA_COMM" VARCHAR2(20), 
	"C_SFJF" VARCHAR2(20), 
	"D_SQAI_BEGIN" DATE, 
	"C_BASE_DATE_TYPE" VARCHAR2(50), 
	"N_BASE_DATE" NUMBER(3,0), 
	"C_DUE_DATE_TYPE" VARCHAR2(50), 
	"N_DUE_DATE" NUMBER(3,0), 
	"C_FINANCE_TOOL" VARCHAR2(30) DEFAULT ' ', 
	"C_KZCD_GQ" VARCHAR2(20), 
	"C_SEC_NAME_CN" VARCHAR2(20), 
	"C_EXT_ASS_CODE" VARCHAR2(20), 
	"C_GLF" VARCHAR2(50), 
	"C_ORG_TYPE" VARCHAR2(20), 
	"C_ISSUERS_CODE" VARCHAR2(50) DEFAULT ' ' NOT NULL ENABLE, 
	"D_CHANGE_LIST" DATE DEFAULT to_timestamp('9998-12-31','YYYY/MM/DD'), 
	"C_DESC" VARCHAR2(300)
   ) ON COMMIT DELETE ROWS ;

CREATE INDEX "IDX_R_P_SV_SEC_BASE0" ON "R_P_SV_SEC_BASE" ("C_SEC_CODE") ;

1.先利用SEC_BASE处理第1个逻辑然后再commit, (commit之后临时表自动清空)

2.再处理后面的第2个逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值