Oracle基础知识考试题——孙云涛部门:姓名:成绩:一.问答题(33个,每题3分,最后一题4分,共100分):1.Oracle安裝完成后的初始口令?internal/oraclesys/change_on_installsystem/managerscott/tigersysman/oem_temp2.怎么获取有哪些用户在使用数据库selectusernamefromv$session;3.数据表中一个表允许的字段最大数是多少?in()操作时集合里最多允许有多少个元素?都是10004.如何在字符串里加回车?select'Welcometovisit'||chr(10)||'.怎样修改oracel数据库的默认日期?altersessionsetnls_date_format='yyyymmddhh24miss';6.请问如何修改一张表的主键?altertableaaadropconstraintaaa_key;altertableaaaaddconstraintaaa_keyprimarykey(a1,b1);7.如何解决死锁问题:第一步:selectt2.username,t2.sid,t2.serial#,t2.logon_time,t3.sql_textfromv$locked_objectt1,v$sessiont2,v$sqltextt3wheret1.session_id=t2.sidandt2.sql_address=t3.addressorderbyt2.logon_time第二步:altersystemkillsession'sid,serial#';8.oarcle数据库的连接字符是什么?||9.查询结果集做和和做差的函数分别是什么?Union和minus10.返回参数为星期几的sql语句写法:SELECTTO_CHAR(SYSDATE,'D')FROMDUAL;11.如何删除一个表的重复纪录DELETEFROMTABLE_NAMEWHEREROWID!=(SELECTMAX(ROWID)FROMTABLE_NAMEDWHERETABLE_NAME.COL1=D.COL1ANDTABLE_NAME.COL2=D.COL2);12.列出你所了解oracle的字符函数,个数不限lowerupperinitcapconcatsubstrinstrlpadrpadtrimlength13.列出你所了解oracle的日期函数,个数不限add_monthsmonths_betweenroundtruncnext_daylast_day14.列出你所了解oracle的数值函数,个数不限roundtruncmod15.列出你所了解oracle的组函数,个数不限avgminmaxsumcount16.怎样得到一个字符串中字母a的个数?写出一个方法即可:Selectlength(‘abcabcabc’)-length(replace(‘abcabcabc’,’a’,’’)fromdual17.唯一索引和主键的区别是什么?主键不可以为null,唯一索引可以。18.列出你所了解到的分析函数,个数不限。cume_dist(),dense_rank(),first_value(),last_value(),rank(),dense_rank(),row_number()19.分析函数rank()和dense_rank()的区别是什么?存在查询结果重复时前者跳号,后者不跳号。20.在查询语句中使用函数是非常方便的,你能否列出一个不利的方面,及其解决办法?在大量数据上使用函数,在一定程序上会减低查询速度这个时候可以考虑为这些函数建立函数索引21.在执行delete、update等操作时,要注意什么问题,请列举一个。注意回滚空间问题。22.请写一个任意的存储过程。createorreplaceprocedureaaaaissql_strvarchar2(200);beginsql_str:='select''abc''abc,''def''deffromdual';executeimmediatesql_str;return;endaaaa;23.请写一个任意游标。cursorc_alarm_itemisselectalarmname,ruleset,trim(objnamedby)asnestr,trim(reportvalue)asdatastr,tablenamefromnigeria_ad.pm_alarm_exwherealarmenabled=1;24.请随意写一个创建触发器的例子。CREATEORREPLACETRIGGERupdate_job_historyAFTERUPDATEOFjob_id,department_idONemployeesFOREACHROWBEGINadd_job_history(:old.employee_id,:old.hire_date,sysdate,:old.job_id,:old.department_id);END;25.请用sql语句建立一个job,任举一例。VARIABLEjobdxmnumber;begindbms_job.submit(:jobdxm,'P_STARTNEMESS;',sysdate,'trunc(sysdate+1)+7/24');commit;end;26.游标的for循环中注意的问题,任举一例。不需要显式的打开游标,即无需使用open语句27.存储过程和函数在pl/sqldeveloper里能不能单步调试?能!28.写一个游标变量的例子。typec_tableisrefcursor;--第一步c_maxstartdaystarttimec_table;--第二步sql_str:='selectnvl(max(startday||lpad(starttime,6,''0'')),99990000000000)maxstartdaystarttimefrom'||v_tablename||'wherestartday=(selectmax(startday)from'||v_tablename||'wherestartday=to_char(sysdate,'||'''yyyymmdd'''||'))';openc_maxstartdaystarttimeforsql_str;--第三步loopfetchc_maxstartdaystarttimeintotable_maxstartdaystarttime;exitwhenc_maxstartdaystarttime%notfound;endloop;closec_maxstartdaystarttime;29.写一个带参数的游标的例子。CURSORCur_listsql(ck_startdayp_startday%TYPE,ck_enddayp_startday%TYPE)ISselecttablename,blockname,h_tab,h_idname,condition,h_tabtype,blockdspfromh_checkwherestate=130.通过字典表把数据表的所有表名和列名查询出来。selecttable_name,column_namefromuser_col_comments31.列出使用视图的两个重要作用。简化查询、屏蔽敏感数据32.Oracle里的通配字符是什么?用哪个关键字定义自己的通配字符?%和_用escape33.写一个用imp命令导入数据和用exp导出数据的例子。Impusername/password@sidfile=c:/xyz.dmplog=c:/xyzimp.logfromuser=fromusernametouser=tousernameExpusername/password@sidfile=c:/xyzexp081006.dmplog=c:/xyzimp.log