软件开发基础知识.docx
- 文档编号:28461185
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:108
- 大小:129.67KB
软件开发基础知识.docx
《软件开发基础知识.docx》由会员分享,可在线阅读,更多相关《软件开发基础知识.docx(108页珍藏版)》请在冰豆网上搜索。
软件开发基础知识
2、java反射机制…………………………………………………………………………….55
3、javaMail实现…………………………………………………………………………….55
4、java如何操作XML……………………………………………………………………..69
一、数据库
1、Oracle中LOB数据类型
Oracle8i以后的版本:
一个表只能有一个LONG,LONGRAW列(Maxis2G),但可以有多个LOB列(BLOB,CLOB)。
保存长文本,使用LOB字段,其中BLOB是二进制型---视频,音频,CLOB是字符型--文本。
2、oracle文件物理位置
数据存放于datafile文件中;
目录存放于硬盘中的指定位置;
表存放于datafile文件中中;
视图没有数据,只是一句sql语句与表一样存放与datafile中。
3、oracle权限列表
alteranycluster修改任意簇的权限
alteranyindex修改任意索引的权限
alteranyrole修改任意角色的权限
alteranysequence修改任意序列的权限
alteranysnapshot修改任意快照的权限
alteranytable修改任意表的权限
alteranytrigger修改任意触发器的权限
altercluster修改拥有簇的权限
alterdatabase修改数据库的权限
alterprocedure修改拥有的存储过程权限
alterprofile修改资源限制简表的权限
alterresourcecost设置佳话资源开销的权限
alterrollbacksegment修改回滚段的权限
altersequence修改拥有的序列权限
altersession修改数据库会话的权限
altersytem修改数据库服务器设置的权限
altertable修改拥有的表权限
altertablespace修改表空间的权限
alteruser修改用户的权限
analyze使用analyze命令分析数据库中任意的表、索引和簇
auditany为任意的数据库对象设置审计选项
auditsystem允许系统操作审计
backupanytable备份任意表的权限
becomeuser切换用户状态的权限
commitanytable提交表的权限
createanycluster为任意用户创建簇的权限
createanyindex为任意用户创建索引的权限
createanyprocedure为任意用户创建存储过程的权限
createanysequence为任意用户创建序列的权限
createanysnapshot为任意用户创建快照的权限
createanysynonym为任意用户创建同义名的权限
createanytable为任意用户创建表的权限
createanytrigger为任意用户创建触发器的权限
createanyview为任意用户创建视图的权限
createcluster为用户创建簇的权限
createdatabaselink为用户创建的权限
createprocedure为用户创建存储过程的权限
createprofile创建资源限制简表的权限
createpublicdatabaselink创建公共数据库链路的权限
createpublicsynonym创建公共同义名的权限
createrole创建角色的权限
createrollbacksegment创建回滚段的权限
createsession创建会话的权限
createsequence为用户创建序列的权限
createsnapshot为用户创建快照的权限
createsynonym为用户创建同义名的权限
createtable为用户创建表的权限
createtablespace创建表空间的权限
createuser创建用户的权限
createview为用户创建视图的权限
deleteanytable删除任意表行的权限
deleteanyview删除任意视图行的权限
deletesnapshot删除快照中行的权限
deletetable为用户删除表行的权限
deleteview为用户删除视图行的权限
dropanycluster删除任意簇的权限
dropanyindex删除任意索引的权限
dropanyprocedure删除任意存储过程的权限
dropanyrole删除任意角色的权限
dropanysequence删除任意序列的权限
dropanysnapshot删除任意快照的权限
dropanysynonym删除任意同义名的权限
dropanytable删除任意表的权限
dropanytrigger删除任意触发器的权限
dropanyview删除任意视图的权限
dropprofile删除资源限制简表的权限
droppubliccluster删除公共簇的权限
droppublicdatabaselink删除公共数据链路的权限
droppublicsynonym删除公共同义名的权限
droprollbacksegment删除回滚段的权限
droptablespace删除表空间的权限
dropuser删除用户的权限
executeanyprocedure执行任意存储过程的权限
executefunction执行存储函数的权限
executepackage执行存储包的权限
executeprocedure执行用户存储过程的权限
forceanytransaction管理未提交的任意事务的输出权限
forcetransaction管理未提交的用户事务的输出权限
grantanyprivilege授予任意系统特权的权限
grantanyrole授予任意角色的权限
indextable给表加索引的权限
insertanytable向任意表中插入行的权限
insertsnapshot向快照中插入行的权限
inserttable向用户表中插入行的权限
insertview向用户视图中插行的权限
lockanytable给任意表加锁的权限
managertablespace管理(备份可用性)表空间的权限
referencestable参考表的权限
restrictedsession创建有限制的数据库会话的权限
selectanysequence使用任意序列的权限
selectanytable使用任意表的权限
selectsnapshot使用快照的权限
selectsequence使用用户序列的权限
selecttable使用用户表的权限
selectview使用视图的权限
unlimitedtablespace对表空间大小不加限制的权限
updateanytable修改任意表中行的权限
updatesnapshot修改快照中行的权限
updatetable修改用户表中的行的权限
updateview修改视图中行的权限
4、Oracle开发者权限
应用程序开发者有一下两种权限:
Afreedevelopment
应用程序开发者允许创建新的模式对象,包括table,index,procedure,package等,它允许应用程序开发者开发独立于其他对象的应用程序。
Bcontrolleddevelopment
应用程序开发者不允许创建新的模式对象。
所有需要table,indesprocedure等都由数据库管理者创建,它保证了数据库管理者能完全控制数据空间的使用以及访问数据库信息的途径。
但有时应用程序开发者也需这两种权限的混和。
5、PL/SQL中,对象类型调用的方法
PL/SQL中,对象类型调用的方法?
MEMBER、STATIC、ORDER、MAP
答案:
[{MAP ORDER} MEMBER function_name,] ---排序函数
[{FINAL NOT FINAL} MEMBER function_name,] ---可否继承的成员函数
[{INSTANTIABLE NOT INSTANTIABLE } MEMBER function_name,] ---可否实例化的成员函数
[{MEMBER STATIC } function_name,] ---静态、非静态成员函数
6、populate_group_with_queryBuilt-in
描述:
Populatesarecordgroupwiththegivenquery.Therecordgroupisclearedandrowsthatarefetchedreplaceanyexistingrowsintherecordgroup.
IftheSELECTstatementfails,OracleFormsreturnsanORACLEerrornumber,whichcanbetrackedwithSQLERRM,
ifyouchangethesignto-.Ifthequeryissuccessful,thisBuilt-inreturns0(zero).
YoucanusethisBuilt-intopopulaterecordgroupsthatwerecreatedbyacalltoeither:
∙theCREATE_GROUPBuilt-inor
∙theCREATE_GROUP_FROM_QUERYBuilt-in
WhenyouusethisBuilt-in,theindicatedquerybecomesthedefaultqueryforthegroup,andwillbeexecutedwheneverthePOPULATE_GROUPBuilt-inissubsequentlycalled.
Note:
BeawarethatthePOPULATE_GROUP_WITH_QUERYarrayfetches20recordsatatime.Toimprovenetworkperformance,youmaywanttorestrictqueries,thuslimitingnetworktraffic.
语法如下:
FUNCTIONPOPULATE_GROUP_WITH_QUERY
(recordgroup_idRecordGroup,
queryVARCHAR2);
FUNCTIONPOPULATE_GROUP_WITH_QUERY
(recordgroup_nameVARCHAR2,
queryVARCHAR2);
Built-inTypeunrestrictedfunction
ReturnsNUMBER
EnterQueryModeyes
参数如下:
recordgroup_id
TheuniqueIDthatOracleFormsassignswhenitcreatesthegroup.ThedatatypeoftheIDisRecordGroup.
recordgroup_name
Thenameyougavetotherecordgroupwhencreatingit.ThedatatypeofthenameisVARCHAR2.
query
AvalidSELECTstatement,enclosedinsinglequotes.Anycolumnsretrievedasaresultofthequerytakethedatatypesofthecolumnsinthetable.Ifyourestrictthequerytoasubsetofthecolumnsinthetable,thenOracleFormscreatesonlythosecolumnsintherecordgroup.ThedatatypeofthequeryisVARCHAR2.
例子:
/*
**Built-in:
CREATE_GROUP
**Example:
Createsarecordgroupandpopulatesitsvalues
**fromaquery.
*/
DECLARE
rg_nameVARCHAR2(40):
='Salary_Range';
rg_idRecordGroup;
gc_idGroupColumn;
errcodeNUMBER;
BEGIN
/*
**Makesuretherecordgroupdoesnotalreadyexist.
*/
rg_id:
=Find_Group(rg_name);
/*
**Ifitdoesnotexist,createitandaddthetwo
**necessarycolumnstoit.
*/
IFId_Null(rg_id)THEN
rg_id:
=Create_Group(rg_name);
/*Addtwonumbercolumnstotherecordgroup*/
gc_id:
=Add_Group_Column(rg_id,'Base_Sal_Range',
NUMBER_COLUMN);
gc_id:
=Add_Group_Column(rg_id,'Emps_In_Range',
NUMBER_COLUMN);
ENDIF;
/*
**Populategroupwithaquery
*/
errcode:
=Populate_Group_With_Query(rg_id,
'SELECTSAL-MOD(SAL,1000),COUNT(EMPNO)'
||'FROMEMP'
||'GROUPBYSAL-MOD(SAL,1000)'
||'ORDERBY1');
END;
其中:
populate_group函数
是完成组的填充
它返回一个值表达成功或不成功.若为0表示成功,若为errornumber则为不成功
语法如下:
FUNCTIONPOPULATE_GROUP
(recordgroup_idRecordGroup);
FUNCTIONPOPULATE_GROUP
(recordgroup_nameVARCHAR2);
Built-inTypeunrestrictedfunction
ReturnsNUMBER
EnterQueryModeyes
参数如下:
recordgroup_id
TheuniqueIDthatOracleFormsassignswhenitcreatesthegroup.ThedatatypeoftheIDisRecordGroup.
recordgroup_name
Thenameyougavetotherecordgroupwhencreatingit.ThedatatypeofthenameisVARCHAR2.
限制:
Validonlyforrecordgroups:
∙thatwerecreatedatdesigntimewithaquery
∙thatwerecreatedbyacalltotheCREATE_GROUP_FROM_QUERYbuilt-in
∙thathavebeenpreviouslypopulatedwiththePOPULATE_GROUP_WITH_QUERYbuilt-in(whichassociatesaquerywiththerecordgroup)
见例子:
DECLARE
rg_nameVARCHAR2(40):
='Salary_Range';
rg_idRecordGroup;
errcodeNUMBER;
BEGIN
/*
**Makesuregroupdoesn'talreadyexist
*/
rg_id:
=Find_Group(rg_name);
/*
**Ifitdoesnotexist,createitandaddthetwo
**necessarycolumnstoit.
*/
IFId_Null(rg_id)THEN
rg_id:
=Create_Group_From_Query(rg_name,
'SELECTSAL-MOD(SAL,1000)BASE_SAL_RANGE,'
||'COUNT(EMPNO)EMPS_IN_RANGE'
||'FROMEMP'
||'GROUPBYSAL-MOD(SAL,1000)'
||'ORDERBY1');
ENDIF;
/*
**Populatetherecordgroup
*/
errcode:
=Populate_Group(rg_id);
END;
7、游标的使用
定义游标:
cursor游标名isselect语句;
cursor是定义游标的关键词,select是建立游标的数据表查询命令。
打开游标:
open游标名;
提取游标数据:
fetch游标名into变量名1,变量名2,……;
或
fetch游标名into记录型变量名;
游标的关闭。
close游标名;
这个例子是新增和修改的一个存储过程,游标在这里没有起到实质性的作用,这里只是利用游标打印写数据用。
此过程可以在user/password为ka/ka下进行测试。
CREATEORREPLACEPROCEDUREADDRESS_PRO
(
V#ADDRESSIDINADDRESS.ADDRESSID%TYPE,
V#CITYORCOUNTY INADDRESS.CITYORCOUNTY%TYPE,
V#CREATEDATEINADDRESS.CREATEDATE%TYPE,
V#CREATORIDINADDRESS.CREATORID%TYPE,
V#DELETEDFLAGINADDRESS.DELETEDFLAG%TYPE,
V#MODIFIEDBYINADDRESS.MODIFIEDBY%TYPE,
V#MODIFIEDDATEINADDRESS.MODIFIEDDATE%TYPE,
V#POSTALCODEINADDRESS.POSTALCODE%TYPE,
V#PROVINCEIDINADDRESS.PROVINCEID%TYPE,
V#STREETADDRESSINADDRESS.STREETADDRESS%TYPE,
V#TERRITORYIDINADDRESS.TERRITORYID%TYPE
)
AS
TMPVARNUMBER;
COUNVARNUMBER;
CURSORADDRESS_CURSORISSELECT*FROMADDRESS;(声明游标)
BEGIN
SELECTCOUNT(*)INTOTMPVARFROMADDRESSWHEREADDRESSID=V#ADDRESSID;
IF(TMPVAR>0)THEN
BEGIN
DBMS_OUTPUT.PUT_LINE('-----update----');
END;
ELSE
BEGIN
DBMS_OUTPUT.PUT_LINE('------insert----');
END;
ENDIF;
SELECTCOUNT(*)INTOCOUNVARFROMADDRESS;
FORADDRESSRESULTINADDRESS_CURSORLOOP
DBMS_OUTPUT.PUT_LINE('---'||ADDRESSRESULT.ADDRESSID||'----'||ADDRESSRESULT.CITYORCOUNTY);(打开和使用游标和关闭游标)
--DBMS_OUTPUT.PUT_LINE('---'||COUNVAR);
ENDLOOP;
IF(TMPVAR>=0)THEN
BEGIN
UPDATEADDRESSSETADDRESSID=V#ADDRESSID,CITYORCOUNTY=V#CITYORCOUNTY,CREATEDATE=V#CREATEDATE,CREATORID=V#CREATORID,
DELETEDFLAG=V#DELETEDFLAG,MODIFIEDBY=V#MODIFIEDBY,MODIFIEDDATE=V#MODIFI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 基础知识