创建table 过程中,定义 添加 默认/表达式.sys_guid和sysdate等等

本文介绍了一种在Oracle数据库中为表添加通用字段的方法。这些字段包括唯一标识符、排序号、系统日期等,用于记录数据的创建及修改信息。

               // 添加公共的表字段. 

                sql+="DATA_ID VARCHAR2(50) default SYS_GUID() not null,";

sql+=" DATA_ORDER NUMBER(20,2),";//  排序字段
sql+=" DATA_SYSDATE DATE default SYSDATE,";// 系统入库时间
sql+="DATA_CREATEUSER VARCHAR2(50),";//创建人
sql+="DATA_CREATEUNIT VARCHAR2(128),";//创建单位
sql+="DATA_CREATETIME VARCHAR2(50) default to_char(sysdate,'yyyy-mm-dd'),";//创建时间
sql+="DATA_MODIFYUSER VARCHAR2(50),";//最后修改人
sql+="DATA_MODIFYUNIT VARCHAR2(128),";//最后修改单位
sql+="DATA_MODIFYTIME VARCHAR2(20) default to_char(sysdate,'yyyy-mm-dd')";//最后修改时间
sql+=")";
INSERT INTO LCDP_XYPJ_BOOT.XYPJ_ST_CE_EP_ENT_INDEX_INFO_D( UID, USCODE, DATA_DATE, THREE_YEARS_ADMI_PNLT_CNT, THREE_YEARS_PNLT_CFSC_AMT, THREE_YEARS_ADMI_FORCE_CNT, THREE_YEARS_INSPECT_PROBLEM_CNT, THREE_YEARS_INSPECT_CNT, EXECUTIVES_TENURE_EXECD_CNT, EQUITY_FREEZE_CNT, THREE_YEARS_CREDIT_REPAIR_CNT, THREE_YEARS_REPAIR_SAME_PNLT, REL_ENT_LOGOUT_RVOK_CNT, REL_ENT_CNT, REL_ENT_OPERATE_EXCEPT_CNT, REL_ENT_ADMI_PNLT_CNT, REL_ENT_SERIOUS_DISHONEST_CNT, REG_CAPITAL, REMAIN_TIME, LICENSE_VALID_DAYS, LEGAL_REP_REG_ENT_CNT, INVEST_CNT, BRANCH_ORG_CNT, LAST_YEAR_OCCU_CNT, THREE_YEARS_OPERATE_EXCEPT_CNT, NOT_ON_TIME_ANNALS_CNT, NEARLY_ANNALS_YEAR, NET_PROFIT, NET_ASSET_RETURN_RATE, OPERATE_INCOME_ADD_RATE, DEBT_GROSS_RATE, THREE_YEARS_PROFIT_LESS_ZERO_CNT, THREE_YEARS_NET_ASSET_LESS_ZERO_CNT, THREE_YEARS_PLEDGOR_PRO, ADMI_PERM_CNT, ENT_AUTH_CNT, REV_CERT_CNT, BRAND_CNT, IPR_PLEDGO_CNT, PATENT_CNT, SPECIAL_NEW_CNT, HIGH_TECH_CNT, THREE_YEARS_FIRE_DEAD_CNT, THREE_YEARS_DEAD_PRSN_CNT, THREE_YEARS_FAIL_PROMS_PFME_CNT, PUBLIC_CREDIT_GRADE_CNT, THREE_YEARS_NA_REWARD_CNT, THREE_YEARS_CITY_REWARD_CNT, THREE_YEARS_COUNTY_REWARD_CNT ) select SYS_GUID(), x.F_UNIFIED_SOCIAL_CREDIT_CODE, SYSDATE, -- 1 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ADMI_PNLT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and PNLT_DECI_DATE >= ADD_MONTHS(SYSDATE, -36)), -- 2 ( select CASE WHEN ( SELECT MAX(PNLT_AMT) FROM LCDP_XYPJ_BOOT.ST_CE_EP_ADMI_PNLT_INFO_D WHERE uscode =x.F_UNIFIED_SOCIAL_CREDIT_CODE AND PNLT_DECI_DATE >= ADD_MONTHS(SYSDATE, -36) ) IS NULL THEN 0 ELSE ( SELECT MAX(PNLT_AMT) FROM LCDP_XYPJ_BOOT.ST_CE_EP_ADMI_PNLT_INFO_D WHERE uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE AND PNLT_DECI_DATE >= ADD_MONTHS(SYSDATE, -36) ) END from LCDP_XYPJ_BOOT.ST_CE_EP_ADMI_PNLT_INFO_D LIMIT 1), -- 3 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ADMI_FORCE_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and FORCE_EXEC_DATE >= ADD_MONTHS(SYSDATE, -36)), -- 4 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ADMI_INSPECT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE AND LEFT(SUPVCHK_RESULT, 4) = '发现问题' and SUPVCHK_DATE >= ADD_MONTHS(SYSDATE, -36)), -- 5 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ADMI_INSPECT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and SUPVCHK_DATE >= ADD_MONTHS(SYSDATE, -36)), -- 6 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_MAIN_MEMBER_EXECD_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 7 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_EQUITY_FREEZE_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 8 ( SELECT CASE WHEN (SELECT COUNT(*) FROM LCDP_XYPJ_BOOT.ST_CE_EP_CREDIT_REPAIR_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE) = 0 THEN 0 ELSE (SELECT COUNT(*) FROM LCDP_XYPJ_BOOT.ST_CE_EP_CREDIT_REPAIR_INFO_D WHERE REV_STATE = '撤销' and uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE) * 1.0 / (SELECT COUNT(*) FROM LCDP_XYPJ_BOOT.ST_CE_EP_CREDIT_REPAIR_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE) END AS revoke_ratio FROM DUAL ), -- 9 ( SELECT NVL( (SELECT COUNT(PNLT_DECI_WRIT_CONTENT) FROM LCDP_XYPJ_BOOT.ST_CE_EP_CREDIT_REPAIR_INFO_D WHERE uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE GROUP BY PNLT_DECI_WRIT_CONTENT HAVING COUNT(PNLT_DECI_WRIT_CONTENT) > 1 LIMIT 1), 0 ) AS repeat_penalty_count FROM LCDP_XYPJ_BOOT.ST_CE_EP_CREDIT_REPAIR_INFO_D limit 1 ), -- 10 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_RELA_ENT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and RELA_ENT_REG_STATE = '吊销' ), ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_RELA_ENT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 11 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_RELA_ENT_OPERATE_EXCEPT_LIST_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and LIST_DATE is not null ), -- 12 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_RELA_ENT_ADMI_PNLT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and PNLT_DECI_DATE is not null ), -- 13 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_RELA_ENT_SERIOUS_DISHONEST_SUBJECT_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and EXEC_DATE is not null ), -- 14 有问题 ( select ROUND( (MONTHS_BETWEEN(SYSDATE, EST_DATE) / 12), 0 ) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE LIMIT 1 ), -- 15 有问题 ( select ROUND(BUSI_EFF_END_DATE - SYSDATE) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE LIMIT 1 ), -- 16 有问题 ( select ent_scale from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE LIMIT 1 ), -- 17 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ONE_PER_MORE_ENT_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 18 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_INVEST_BRANCH_ORG_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and DATA_TYPE = '对外投资企业' ), -- 19 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_INVEST_BRANCH_ORG_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and DATA_TYPE = '分支机构' ), -- 20 ( SELECT OCCU_CNT FROM LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D WHERE uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and ANNALS_TIME = ( SELECT MAX(ANNALS_TIME) FROM LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ) LIMIT 1 ), -- 21 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_OPERATE_EXCEPT_LIST_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and LIST_DATE >= ADD_MONTHS(SYSDATE, -36)), -- 22 有問題 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 23 ( select max(ANNALS_YEAR) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 24 ( select NET_PROFIT from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and ANNALS_YEAR = (select max(ANNALS_YEAR) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE) ), -- 25 明确计算逻辑 净资产收益信息 ( SELECT CASE WHEN OPERATE_INCOME = 0 THEN 0 ELSE (GROSS_PROFIT / OPERATE_INCOME) * 100 END AS gross_profit_rate FROM LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE LIMIT 1 ), -- 26 明确计算逻辑 营业收入增长信息 0, -- 27 明确计算逻辑 资产负债信息 ( SELECT CASE WHEN ASSET_GROSS_AMT = 0 THEN 0 ELSE ROUND((DEBT_GROSS_AMT / ASSET_GROSS_AMT) * 100, 2) END AS debt_asset_ratio FROM LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE LIMIT 1), -- 28 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE and GROSS_PROFIT < 0 ), -- 29 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ANNALS_INFO_D where ASSET_GROSS_AMT < 0 ), -- 30 ( SELECT NVL( ( SELECT CASE WHEN PLEDGE_AMT = 0 THEN 0 ELSE ROUND((SECURED_PRINCIPAL_CLAIM_AMT / PLEDGE_AMT) * 100, 2) END FROM LCDP_XYPJ_BOOT.ST_CE_EP_ENT_STOCKRIGHT_PLEDGE_REG_D WHERE uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE LIMIT 1 ), 0 ) ), -- 31 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_ADMIT_QLFC_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 32 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_AUTH_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 33 888, -- 34 888, -- 35 888, -- 36 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_PATENT_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 37 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_IDTF_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 38 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_ENT_IDTF_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 39 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_FIRE_DEAD_PRSN_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 40 ( SELECT NVL( ( select SUM(DEAD_PRSN_CNT) from LCDP_XYPJ_BOOT.ST_CE_EP_FIRE_DEAD_PRSN_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), 0 )), -- 41 ( select count(*) from LCDP_XYPJ_BOOT.ST_CE_EP_CREDIT_PROMS_PFME_INFO_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE ), -- 42 ( select EVLT_GRADE from LCDP_XYPJ_BOOT.ST_CE_EP_NA_ENT_CREDIT_EVLT_RESULT_D where uscode = x.F_UNIFIED_SOCIAL_CREDIT_CODE LIMIT 1 ), 888, 888, 888 from LCDP_XYPJ_BOOT.XYPJ_COMPANY_INFO as x ;添加上别名 对应新增语句,用我的sql修改
08-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值