oracle基础知识有哪些
这篇文章主要介绍“oracle基础知识有哪些”,在日常操作中,相信很多人在oracle基础知识有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”oracle基础知识有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1.创建表空间
--创建表空间CREATETABLESPACEfundDATAFILE'e:\ORADATA\fundd_file.dbf'SIZE40M;
2.创建用户
--创建用户及密码CREATEUSERtest_userIDENTIFIEDBYtest123456DEFAULTTABLESPACEfund;
3.给用户赋权
--授权GRANTCONNECT,RESOURCETOtest_user;
4.创建表
--创建表CREATETABLEFund(FundNoVARCHAR2(20),CompanyIdVARCHAR2(20),FundNameVARCHAR2(20),PriceNUMBER(10,2),FundTypeNUMBER(1,0),InvestNUMBER(1,0),BuyLimitNUMBER(5,0),IsChangeNUMBER(1,0),YearRateNUMBER(6,5),ApplyDateDATE,StateNUMBER(1,0));
5.给表添加主键及外键约束
--删除已有的主键--ALTERTABLEFundDROPCONSTRAINTPK_Fund;--添加主键约束ALTERTABLEFundADDCONSTRAINTPK_Fund_FundNoPRIMARYKEY(FundNo);--添加外键约束ALTERTABLEFundADDCONSTRAINTFK_Fund_CompanyIdFOREIGNKEY(CompanyId)REFERENCESFundCompany(CompanyId);
6.给表及字段添加注释
--给表添加注释COMMENTONTABLEFundIS'基金表';--给表字段添加注释COMMENTONCOLUMNFund.FundNoIS'基金代码ID,主键';COMMENTONCOLUMNFund.CompanyIdIS'基金公司ID,外键引用FundCompany表的CompanyId';COMMENTONCOLUMNFund.FundNameIS'基金名称';COMMENTONCOLUMNFund.PriceIS'基金净值';COMMENTONCOLUMNFund.FundTypeIS'基金类型,1表示开放式,2表示封闭式';COMMENTONCOLUMNFund.InvestIS'投资方向,1股票,2债券,3货币,4混合';COMMENTONCOLUMNFund.BuyLimitIS'购买下限';COMMENTONCOLUMNFund.IsChangeIS'是否可转换,0表示不可转换,1表示可转换';COMMENTONCOLUMNFund.YearRateIS'年利率,必须是0-1之间的数字';COMMENTONCOLUMNFund.ApplyDateIS'申请日期';COMMENTONCOLUMNFund.StateIS'基金状态,0表示正常,1表示冻结';
7.创建函数
CREATEORREPLACEFUNCTIONFUNC_NEXTID(I_SQINVARCHAR2,I_TITLEINVARCHAR2,I_LENINNUMBER)RETURNVARCHAR2ASV_SQVARCHAR2(100);V_KEYVARCHAR2(100);BEGINSELECTI_SQ||'.NEXTVAL'INTOV_SQFROMDUAL;SELECTI_TITLE||LPAD(V_SQ,I_LEN,0)INTOV_KEYFROMDUAL;RETURNV_KEY;END;
8.创建序列
--为基金公司表(FundCompany)主键创建序列CREATESEQUENCESQ_COMPANYIDINCREMENTBY1--每次加1STARTWITH1--从1开始NOMAXVALUE--没有最大值NOCYCLE--一直累加不循环CACHE10;
9.创建触发器
CREATEORREPLACETRIGGERTR_FundBEFOREINSERTONFundFOREACHROWBEGIN:NEW.FUNDNO:=FUNC_NEXTID('V','SQ_FundNo.NEXTVAL',6);END;
10.创建程序包(包体中包括了函数及过程)
包:
/*--------------------------------------------------创建包说明--包名:FundAccountManager_pack--功能描述:创建过程或函数分别实现,基金账户开户、基金账户信息查询。--原创:钓鱼君--日期:2016/3/10--QQ:954739353--------------------------------------------------*/CREATEORREPLACEPACKAGEFundAccountManager_packIS--活期账户开户FUNCTIONFUNC_ADD_CURRENTACCOUNT(I_CURRENTPASSWORDVARCHAR2,I_DEPOSITSUMNUMBER,I_CARDTYPENUMBER,I_CARDNOVARCHAR2,I_NAMEVARCHAR2,I_ADDRESSVARCHAR2,I_PHONEVARCHAR2,I_SEXNUMBER,I_OPENACCDATEDATE,I_STATENUMBER)RETURNNUMBER;--理财账户开户FUNCTIONFUNC_ADD_FINANCINGACCOUNT(I_FINANCEPASSWORDVARCHAR2,I_MONEYTYPENUMBER,I_ACCOUNTBALANCENUMBER,I_ENABLEBALANCENUMBER,I_CONGEALFUNDNUMBER,I_STATENUMBER,I_CURRENTACCOUNTVARCHAR2)RETURNNUMBER;--基金账户开户FUNCTIONFUNC_ADD_FUNDACCOUNT(I_FINANCINGACCOUNTVARCHAR2,I_COMPANYIDVARCHAR2,I_CARDTYPENUMBER,I_CARDNOVARCHAR2,I_NAMEVARCHAR2,I_SEXNUMBER,I_ADDRESSVARCHAR2,I_PHONEVARCHAR2,I_POSTNUMVARCHAR2,I_EMAILVARCHAR2,I_CREATEDATEDATE,I_CONGEALSTATENUMBER)RETURNNUMBER;--基金账户信息查询PROCEDUREPRO_QUERY_FUNDACCOUNT(O_RESULTOUTSYS_REFCURSOR,I_FINANCINGACCOUNTINVARCHAR2);ENDFundAccountManager_pack;
包体:
CREATEORREPLACEPACKAGEBODYFundAccountManager_packIS----活期账户开户/*--------------------------------------------------创建包说明--包名:FundAccountManager_pack--功能描述:创建过程或函数分别实现,基金账户开户、基金账户信息查询。--原创:钓鱼君--日期:2016/3/10--QQ:954739353--------------------------------------------------*/FUNCTIONFUNC_ADD_CURRENTACCOUNT(I_CURRENTPASSWORDVARCHAR2,I_DEPOSITSUMNUMBER,I_CARDTYPENUMBER,I_CARDNOVARCHAR2,I_NAMEVARCHAR2,I_ADDRESSVARCHAR2,I_PHONEVARCHAR2,I_SEXNUMBER,I_OPENACCDATEDATE,I_STATENUMBER)RETURNNUMBERISERR_CURRENTACCOUNTEXCEPTION;PRAGMAEXCEPTION_INIT(ERR_CURRENTACCOUNT,-1);/*违反唯一主键约束为-1*/BEGININSERTINTOCURRENTACCOUNT(CURRENTPASSWORD,DEPOSITSUM,CARDTYPE,CARDNO,NAME,ADDRESS,PHONE,SEX,OPENACCDATE,STATE)VALUES(I_CURRENTPASSWORD,I_DEPOSITSUM,I_CARDTYPE,I_CARDNO,I_NAME,I_ADDRESS,I_PHONE,I_SEX,I_OPENACCDATE,I_STATE);IFSQL%FOUNDTHENRETURN1;ENDIF;EXCEPTIONWHENERR_CURRENTACCOUNTTHENRETURN0;WHENOTHERSTHENRETURN-1;ENDFUNC_ADD_CURRENTACCOUNT;--理财账户开户FUNCTIONFUNC_ADD_FINANCINGACCOUNT(I_FINANCEPASSWORDVARCHAR2,I_MONEYTYPENUMBER,I_ACCOUNTBALANCENUMBER,I_ENABLEBALANCENUMBER,I_CONGEALFUNDNUMBER,I_STATENUMBER,I_CURRENTACCOUNTVARCHAR2)RETURNNUMBERISERR_FINANCINGACCOUNTEXCEPTION;PRAGMAEXCEPTION_INIT(ERR_FINANCINGACCOUNT,-1);BEGININSERTINTOFINANCINGACCOUNT(FINANCEPASSWORD,MONEYTYPE,ACCOUNTBALANCE,ENABLEBALANCE,CONGEALFUND,STATE,CURRENTACCOUNT)VALUES(I_FINANCEPASSWORD,I_MONEYTYPE,I_ACCOUNTBALANCE,I_ENABLEBALANCE,I_CONGEALFUND,I_STATE,I_CURRENTACCOUNT);IFSQL%FOUNDTHENRETURN1;ENDIF;EXCEPTIONWHENERR_FINANCINGACCOUNTTHENRETURN0;WHENOTHERSTHENRETURN-1;ENDFUNC_ADD_FINANCINGACCOUNT;--基金账户开户FUNCTIONFUNC_ADD_FUNDACCOUNT(I_FINANCINGACCOUNTVARCHAR2,I_COMPANYIDVARCHAR2,I_CARDTYPENUMBER,I_CARDNOVARCHAR2,I_NAMEVARCHAR2,I_SEXNUMBER,I_ADDRESSVARCHAR2,I_PHONEVARCHAR2,I_POSTNUMVARCHAR2,I_EMAILVARCHAR2,I_CREATEDATEDATE,I_CONGEALSTATENUMBER)RETURNNUMBERISERR_FUNDACCOUNTEXCEPTION;PRAGMAEXCEPTION_INIT(ERR_FUNDACCOUNT,-1);V_COUNTNUMBER;BEGIN--约束条件检查SELECTCOUNT(FINANCINGACCOUNT)INTOV_COUNTFROMFUNDACCOUNTWHEREFINANCINGACCOUNT=I_FINANCINGACCOUNTANDCOMPANYID=I_COMPANYID;IFV_COUNT=0THENINSERTINTOFUNDACCOUNT(FINANCINGACCOUNT,COMPANYID,CARDTYPE,CARDNO,NAME,SEX,ADDRESS,PHONE,POSTNUM,EMAIL,CREATEDATE,CONGEALSTATE)VALUES(I_FINANCINGACCOUNT,I_COMPANYID,I_CARDTYPE,I_CARDNO,I_NAME,I_SEX,I_ADDRESS,I_PHONE,I_POSTNUM,I_EMAIL,I_CREATEDATE,I_CONGEALSTATE);IFSQL%FOUNDTHENRETURN1;ENDIF;ELSERETURN-1;ENDIF;EXCEPTIONWHENERR_FUNDACCOUNTTHENRETURN0;WHENOTHERSTHENRETURN-1;ENDFUNC_ADD_FUNDACCOUNT;--基金账户的查询PROCEDUREPRO_QUERY_FUNDACCOUNT(O_RESULTOUTSYS_REFCURSOR,I_FINANCINGACCOUNTINVARCHAR2)ASBEGINOPENO_RESULTFORSELECT*FROMFUNDACCOUNTTWHERET.FINANCINGACCOUNT=I_FINANCINGACCOUNT;ENDPRO_QUERY_FUNDACCOUNT;ENDFundAccountManager_pack;
到此,关于“oracle基础知识有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。