仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 839|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL教程之oracle数据库开辟的一些履历堆集(一)...

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:42:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQL采用双重授权(DualLicensed),它们是GPL和MySQLAB制定的商业许可协议。oracle|数据|数据库1、不安装Oracle客户毗连Oracle8的办法
请将以下文件拷贝到运转文件地点目次

1、ODBC静态库:

ctl3d32.dllmsvcrt40.dllodbc16gt.dllodbc32.dllodbc32gt.dllodbccp32.dllodbccr32.dllodbcint.dll

2、创建EXTRA子目次,将MSVCRT.DLL文件拷贝到该子目次下

EXTRAMSVCRT.DLL

3、ORACLE静态库及设置文件

Tnsnames.oraCORE35O.DLLNASNSNT.DLLNAUNTSNT.DLLNCRNT.DLLNlnt.dllNLSRTL32.DLLNnfdnt.dllNNFNNT.DLLNSNT.DLLNTNT.DLLNTTNT.DLLCIW32.DLLOra73.dllOTRACE73.DLLSqlnet.oraSqltnsnt.dllCORE35.DLL

4、PB静态库

pbvm70.dllpbdwe70.dllPbo7370.dllPBO8470.DLLpbodb70.dlllibjcc.dll

Oracle的客户端不安装让pb连上,我记得之前有帖子的,你能够搜刮一下。详细步骤。(1).先在某呆板上安装好客户端(最好安装在c盘);(2).复制此客户端oracle目次下的一切文件作为自力的oracle安装文件;(3).搜刮注册表,找到HKey_Local_machineoftwareoracle,把此项目及分支全体导出。(4).打包好你的pb程序,并自力打包好oracle客户端和注册表导出文件。(5).到洁净的客户端,解开两个包,导进注册表文件,然后到场路径撑持:path=%path%;"c:Ora817in"如许处置,应当没有成绩,由于我就是如许疾速处置了几十个呆板。

若不想弄注册表,你能够在程序中本人写注册表,组成Oracle客户端需要的注册表撑持,至于路径,手工增加应当不难。

至于Oracle客户端那些文件不必要,这个欠好说,你能够把那些bin目次下的一切exe删除,OracleDocument删除(7x兆)

至于界说Oracle服务,找到Ora817
et80adminTnsName.ora,参照格局,程序中天生一个也不贫苦。

=======================================================2、在ORACLE中前往游标了局集

你必要写到一个包中:createorreplacepackagepag_cs_poweras

typec_Typeisrefcursor;FUNCTIONFUN_CS_GETDICTLIST(v_DictIndexinvarchar2)returnc_Type;

endpag_cs_power;

函数代码:

FUNCTIONFUN_CS_GETDICTLIST(v_DictIndexinvarchar2)returnc_Typeasc_cursorc_Type;beginopenc_cursorforselectDICTID,DICTNAMEFROMSYS_DICTWHEREDICTINDEX=v_DictIndex;returnc_cursor;endFUN_CS_GETDICTLIST;----------------------------------------------------------------------3、P4呆板安装ORACLE

(1)、将ORACLE安装软件拷贝到硬盘。(2)、将硬盘目次文件tageComponentsoracle.swd.jre1.1.7.30/1DataFilesExpandedjrewin32inymcjit.dll的文件更名为symcjit.old(3).再运转SETUP.exe文件举行安装。

-----------------------------------------------------------------------4、单引号的拔出成绩

SQL>insertintoavalues(imgood);      --两个能够暗示一个

SQL>insertintoavalues(i||chr(39)||mgood); --chr(39)代表字符

SQL>insertintoavalues(a||&||b);     

-----------------------------------------------------------------------5、全数据库的导进与导出

expusername/passwordfull=yfile=yourdata.dmpgrants=yrows=yimpusername/passwordfull=yignore=yfile=yourdata.dmpgrants=y

6、exp与imp的详细用法

expusername/password@mzbs_61full=yfile=yourdata.dmpgrants=yrows=yimpusername/passwordfull=yignore=yfile=yourdata.dmpgrants=y

expmzbs/mzbs@mzbs_61file=c:zzzzzzz.dmpgrants=yrows=yimpmzbs/mzbs@mzbs_61file=c:zzzzzzz.dmpgrants=yignore=yFULL=Y

(1)

exp参数:关头字申明(默许)----------------------------------------------USERID用户名/口令FULL导出全部文件(N)BUFFER数据缓冲区的巨细OWNER一切者用户名列表FILE输入文件(EXPDAT.DMP)TABLES表名列表COMPRESS导进一个局限(Y)RECORDLENGTHIO纪录的长度GRANTS导出权限(Y)INCTYPE增量导出范例INDEXES导出索引(Y)RECORD跟踪增量导出(Y)ROWS导出数据行(Y)PARFILE参数文件名CONSTRAINTS导出限定(Y)CONSISTENT交织表分歧性LOG屏幕输入的日记文件STATISTICS剖析工具(ESTIMATE)DIRECT间接路径(N)TRIGGERS导出触发器(Y)FEEDBACK显现每x行(0)的进度FILESIZE各转储文件的最年夜尺寸QUERY选定导出表子集的子句

imp参数:关头字申明(默许)----------------------------------------------USERID用户名/口令FULL导进全部文件(N)BUFFER数据缓冲区巨细FROMUSER一切人用户名列表FILE输出文件(EXPDAT.DMP)TOUSER用户名列表SHOW只列出文件内容(N)TABLES表名列表IGNORE疏忽创立毛病(N)RECORDLENGTHIO纪录的长度GRANTS导进权限(Y)INCTYPE增量导进范例INDEXES导进索引(Y)COMMIT提交数组拔出(N)ROWS导进数据行(Y)PARFILE参数文件名LOG屏幕输入的日记文件CONSTRAINTS导进限定(Y)DESTROY掩盖表空间数据文件(N)INDEXFILE将表/索引信息写进指定的文件SKIP_UNUSABLE_INDEXES跳过不成用索引的保护(N)ANALYZE实行转储文件中的ANALYZE语句(Y)FEEDBACK显现每x行(0)的进度TOID_NOVALIDATE跳过指定范例id的校验FILESIZE各转储文件的最年夜尺寸RECALCULATE_STATISTICS从头盘算统计值(N)

(2)

1、创建一个expdata.sql文件

USERID=RMTAFIS/3这里写你的用户名和暗码BUFFER=32768OWNER=RMTAFIS这里写导出的用户FILE=E:ExpRMTAFIS.DMP导出的文件,能够是绝对路径ROWs=YGRANTS=YCOMPRESS=YCONSISTENT=Y

2、创建一个expdata.batexpparfile=expdata.sql假如是805exp80parfile=expdata.sql双击expdata.bat就导出数据了

7、假如在like的变量中,是以‘%’开首的话,是不会利用index的。反之,不是以‘%‘开首,而又有响应的index,是会利用index的。详细能够用plainplan来看一下。

8、复制空表布局createtablenew_tableasselect*fromold_tablewhere1=2;复制表(含纪录)createtablenew_tableasselect*fromold_table;

9、把一个用户下的表导进到另外一个用户下,但必要更名

先用exp导出一切的表;用imp将导出的表导进到新用户;在新用户下,实行selectRENAMETABLE||tname||TONEW_||tname||;fromtabwheretabtype=TABLE;将下面的查询了局保留到一个sql文件中,处置后实行就能够了。

10、审计步骤

修正参数文件init.ora,参数audit_trail值为true;从头启动数据库;翻开审计auditsession;(auditsessionbyusername)实行登录操纵;观察审计了局:select*fromdba_audit_session;select*fromsys.aud$;select*fromdba_audit_trail;select*fromdba_audit_exists;关于审计:

为了使oracle8i的审计功效可用,必需在数据库参数文件中修正audit_trail初始参数,而这个修正其实不安排oracle8i把天生的审计纪录记进审计陈迹中,因为形态,特权和形式工具已被修正,因此审计的默许值不成用,其参数应设置为none.上面列出了audit_trail可用的参数

db_使数据库审计和全体直属审计纪录到数据库审计的陈迹中os_是数据库审计根据直属审计记进到操纵体系的审计很会合none_不成用

11、BFILE的用法

(1)、createorreplacedirectoryBFILE_TESTas/oracle/oradata/bfiles;

(2)、grantreadondirectoryBFILE_TESTtoSCOTT;

(3)、hostls-l/oracle/oradata/bfiles/1.TXT

(4)、connectSCOTT/TIGERcreatetableBFILES(IDnumber,TEXTbfile);

(5)、insertintoBFILESvalues(1,bfilename(BFILE_TEST,1.TXT));

12、怎样在Windows2000下将Oracle完整卸载?1、体系情况:(1)、操纵体系:Windows2000Server,呆板内存128M(2)、数据库: Oracle8iR2(8.1.6)forNT企业版(3)、安装路径:D:ORACLE

2、卸载步骤:(1)、入手下手->设置->把持面板->办理工具->服务中断一切Oracle服务。

(2)、入手下手->程序->Oracle-OraHome81->OracleInstallationProducts->UniversalInstaller卸装一切Oracle产物

(3)、运转regedit,选择HKEY_LOCAL_MACHINEOFTWAREORACLE,按del键删除这个出口。

(4)、运转regedit,选择HKEY_LOCAL_MACHINEYSTEMCurrentControlSetervices,转动这个列表,删除一切Oracle出口

(5)、从桌面上、STARTUP(启动)组、程序菜单中,删除一切有关Oracle的组和图标

(6)、从头启动盘算机,重起后才干完整删除Oracle地点目次

(7)、删除与Oracle有关的文件,选择Oracle地点的缺省目次C:Oracle,删除这个出口目次及一切子目次,

 并从Windows2000目次(通常是C:WINNT)下删除以下文件

 ORACLE.INI、oradim80.INI

(8)、WIN.INI文件中如有[ORACLE]的标志段,删除该段

--------------------------------------------------------------------13、怎样利用SQLPLUS和SVRMGRL运转剧本

(1)、用sqlplus挪用:

c:cript.txt的内容startup;

命令行:sqlplusinternal/oracle@c:cript.txt

(2)、用svrmgrl挪用:c:cript.txt的内容

connectinternal/oracle;startup;

命令行:svrmgrl@c:cript.txt

--------------------------------------------------------------------14、ORACLE的一时表

CREATEGLOBALTEMPORARYTABLETABLENAME(COL1VARCHAR2(10),COL2NUMBER)ONCOMMITPRESERVE(DELETE)ROWS;这类一时表不占用表空间,并且分歧的SESSION之间相互看不到对方的数据在会话停止后表中的数据主动清空,假如选了DELETEROWS,则在提交的时分即清空数据,PRESERVE则一向到会话停止

----------------

在Oracle8i中,能够创立以下两种一时表:(1)会话独有的一时表CREATEGLOBALTEMPORARY<TABLE_NAME>(<columnspecification>)ONCOMMITPRESERVEROWS;

(2)事件独有的一时表CREATEGLOBALTEMPORARY<TABLE_NAME>(<columnspecification>)ONCOMMITDELETEROWS;CREATEGLOBALTEMPORARYTABLEMyTempTable所建的一时表固然是存在的,可是你试一下insert一笔记录然后用其余毗连登上往select,纪录是空的,分明了吧,我把上面两句话再贴一下:--ONCOMMITDELETEROWS申明一时表是事件指定,每次提交后ORACLE将截断表(删除全体行)--ONCOMMITPRESERVEROWS申明一时表是会话指定,傍边断会话时ORACLE将截断表。抵触的成绩更本不必思索.

一时表只是保留以后会话(session)用到的数据,数据只在事件或会话时代存在。

经由过程CREATEGLOBALTEMPORARYTABLE命令创立一个一时表,关于事件范例的一时表,数据只是在事件时代存在,关于会话范例的一时表,数据在会话时代存在。

会话的数据关于以后会话公有。每一个会话只能看到并修正本人的数据。DML锁不会加光临时表的数据上。上面的语句把持行的存在性。●ONCOMMITDELETEROWS表名行只是在事件时代可见●ONCOMMITPRESERVEROWS表名行在全部会话时代可见

能够对一时表创立索引,视图,动身器,能够用export和import工具导进导出表的界说,可是不克不及导出数据。表的界说对一切的会话可见。

比方:CREATEGLOBALTEMPORARYTABLETEMP_TAB1(table_nameVARCHAR2(20),primary_keyVARCHAR2(100),fieldVARCHAR2(1000))ONCOMMITPRESERVEROWS;

CREATEGLOBALTEMPORARYTABLETEMP_TAB2(table_nameVARCHAR2(20),primary_keyVARCHAR2(100),fieldVARCHAR2(1000))ONCOMMITDELETEROWS;





15、怎样利用OEM先启数据库服务,再启oraclemanager服务。不然重修档案材料库假如还不可就把ORACLEHOMENETWORKqlnet.ora文件的内容sqlnet.authentication_services=(NTS)改成sqlnet.authentication_services=(NONE)

登录sysman/oem_temp

16、TNS:没有监听器的成绩。

(1)查一下监听服务是不是启动,假如没有启动,则运转lsnrctrlstart。(2)检察一下LISTENER.ORA内监听的服务器名、服务器IP、数据库名是不是准确。(3)检察一下TNSNAMES.ORA内服务器名、服务器IP、数据库名是不是准确。

17、LINUX、UNIX下主动启动ORACLE服务

(1)

!/bin/sh

#chkconfig:3455149#description:startstheoracledabasedeamons#

ORA_HOME=/u01/app/oracle/product/8.1.7ORA_OWNER=oraclecase"$1"instart)echo-n"StartingOracle8i:"su-$ORA_OWNER-c$ORA_HOME/bin/dbstarttouch/var/lock/subsys/oracle8iecho;;

stop)

echo-n"ShuttingdownOracle8i:"su-$ORA_OWNER-c$ORA_HOME/bin/dbshutrm-f/var/lock/subsys/oracle8iecho;;

restart)

echo-n"RestartingOracle8i:"$0stop$0startecho;;

*)echo"Usage:oracle8i{start|stop|restart}"exit1

esacexit0

我模仿su-$ORA_OWNER-c$ORA_HOME/bin/dbshut的情势增加su-$ORA_OWNER-c$ORA_HOME/bin/lsnrctlstart可是在体系启动的时分listener启动不了

(2)

/etc/rc.local改成以下就能够了touch/var/lock/subsys/local#echo2147483648>/proc/sys/kernel/shmmaxecho-n"StartingOracleDatabase:"date+"%D%T%a"su-oracle-c"lsnrctlstart"#su-oracle-c"sqlplus/nolog@startmaster.sql"echo-n"OracleDatabaseStarted:"date+"%D%T%a"-------------第一个#是改共享内存巨细的第二个#是启动数据库的。

(3)ftp://ftp.rpmfind.net/linux/rhcontrib/7.1/i386/oraclerun9i-1.0-1.i386.rpm

下载这个软件包并安装。

内里每一个文件都有一些要修正的中央。设置完成以后,就能够在体系服务设置中找到它,选中它便可能以自启动了。

18、回滚段不敷的处置办法

(1)、先使回滚段脱机一个,假如欠好用,则再脱机一个。直兰交用。ALTERrollbacksegmentrollbacknameoffline;(2)、增添回滚段数据文件的巨细alterdatabasedatafiledatafileresize200M;

19、WINNT向WIN2000移植

不必EXP和IMP的

停失落数据库的服务后,能够做一个数据库的全备份。

在WIN2000上建一个同名的数据库,任意建,越小越好,能够延长工夫。把WINNT下的数据库备份恢复到WIN2000的数据库上就能够了。但建库的目次必需一样。(也能够纷歧样,但必要变动数据文件的毗连)

我曾屡次为用户如许移植数据,十拿九稳的。注重:由于数据很主要,以是倡议你先EXP备份一下。这是我们的习气。

20、ORACLESQLPLUSWorksheet乱码成绩。

dbappscfg.properties,修正该文件便可办理上述成绩。$ORACLE_HOMEysmanconfig目次下,修正#SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1为SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。

关于Windows操纵体系,还必要修正一项#SQLPLUS_SYSTEMROOT=c:WINNT40为SQLPLUS_SYSTEMROOT=C:WINNT

如操纵体系的主目次在C盘的Winnt下

关于前面一项的修正只对Windows操纵体系举行,对UNIX操纵体系则不必要。假如在Windows操纵体系中不修正该项,在OracleEnterpriseManager中,毗连体系时,会提醒以下的毛病:ORA-12560TNS:protocoladaptererror大概ORA-12545Connectfailedbecausetargethostorobjectdoesnotexist从头毗连SQLPLUSWorksheet

21、DROP失落名字是小写的表(用双引号括起来)。

droptable"tablename"select*from"tablename"

22、日期的显现格局注重:SIMPLIFIEDCHINESE(简体中文必要""括起来)其余国度不必""比方:ENGLISHselectto_char(sysdate,DAY,NLS_DATE_LANGUAGE=SIMPLIFIEDCHINESE)fromdual;------------木曜日------------

23、一个从ORACLE中读表信息的存储历程

能够在vc下挪用存储历程来完成例子:先修正init.ora比方:utl_file_dir=/usr//路径为oracle地点的盘:/usr此历程将用户TEMP的P1历程的代码保留到ORACLE安装盘下/USR/TEXT.TXT中createorreplaceprocedureTESTisfile_handleutl_file.file_type;STOR_TEXTVARCHAR2(4000);NNUMBER;INUMBER;beginI:=1;SELECTMAX(LINE)INTONFROMALL_SOURCEWHEREOWNER=TEMPANDNAME=P1;file_handle:=utl_file.fopen(/usr,test.txt,a);WHILEI<=NLOOPSELECTTEXTINTOSTOR_TEXTFROMALL_SOURCEWHEREOWNER=TEMPANDNAME=P1ANDLINE=I;I:=I+1;utl_file.put_line(file_handle,stor_text);ENDLOOP;utl_file.fclose(file_handle);commit;endTEST;/

24、关于修正ORACLE的列宽(1)、不管怎样都要备份数据。(2)、假如没无数据,则能够修正宽度。好比NUMBER,CHAR,VARCHAR2(3)、假如无数据,则能够增添宽度。好比NUMBER,CHAR,VARCHAR2注重:不成以减小宽度。(4)、语法:altertalbetablenamemodifycolumnnamecolumntypenotnull;

25、怎样检察用户的存储历程和函数

selectname,textfromuser_sourcewherename=Procedurenameandtype=PROCEDUREorderbyline;

26、在批处置中主动启动ORACLE服务(win2000)

编一个批处置文件netstartOracleServiceSIDOracleServiceSID是ORACLE的实例称号

27、对行加锁时,只对tb1加锁

selecttb1.r1fromtb1,tb2wheretb1.r2=tb2.r2andtb2.r1=xxxforupdateoftb1.r1nowait

28、失掉列的信息

desctablenameselectcnamefromcolwheretname=TABLENAME;selectcolumn_namefromuser_tab_columnswheretable_name=TABLENAME;selectcolumn_namefromALL_tab_columnswheretable_name=TABLENAME;selectcolumn_namefromdba_tab_columnswheretable_name=TABLENAME;selectcolumn_namefromuser_col_commentswheretable_name=TABLENAME;selectcolumn_namefromall_col_commentswheretable_name=TABLENAME;selectcolumn_namefromdba_col_commentswheretable_name=TABLENAME;

29、使触发器有效(login_on)

svrmgrlconnectinternal/oraclealtertriggerlogin_ondisable;

使触发器为有效altertriggeryourtriggernamedisable

假如是关于某一个表的一切的触发器:altertableyourtablenamedisablealltriggers

30、如在SQLPLUS中何挪用存储历程和函数。

call只能挪用存储历程前面加上括号就能够了call存储历程名();execprocedurename;(能够不加())挪用函数用sql语句select函数名(参数)fromdual;

31、函数中假如挪用DML语句就不成以挪用SELECT语句

32、REDOLOGBUFFER甚么时分写到REDOLOGFILE中(1)、在COMMIT的时分(2)、重做日记缓冲区1/3满的时分(3)、重做日记缓冲区年夜于1M的时分(4)、它写信息必需是在数据写历程前挪用(5)、一样平常CHECKPOINT在日记组切换的时分举行大概由初始化参数设定在CHECKPOINT的时分必要挪用数据写历程

33、ORACLE的httpserver把原本的WEBserver冲失落,怎样办理?

(1).假如你本来的httpserver是用IIS等其他公布工具做的,那末能够在服务中停失落oraclehttpserver服务,而且改成手动启动。(2).假如本来的httpserver是用apache公布,则能够改动http.conf中的参数

34、关于创立重修检察索引

创立索引:CREATEINDEXIND_NAMEONTABLE_NAME(COL1,COL2,...);

重修索引:ALTERINDEXIND_NAMEREBUILD;

检察索引:

SELECT*FROMUSER_INDEXESWHEREINDEX_NAME=IND_NAME;

35、ORACLE怎样查杀用户的历程一|依据用户的使用程序和SQL语句,在DBASTUDIO找到用户的SESSION并断开其毗连2、(1)、要杀失落一个session应先应晓得其sid和serial#,假定你已晓得。(2)、selectpaddrfromv$sessionwheresid=v_sidandserial#=v_serial#selectspidfromv$processwhereaddr=paddr(以上语句所查出的);

(3)、利用ALTERSYSTEMKILLSESSIONv_sid,v_serial#immediate; 试一试如不可转3、LINUX和UNIX下转到操纵体系下实行:kill-9spid(以上语句所查出的)36、ORACLE中反省表是不是被锁的语句

SELECTA.OWNER,A.OBJECT_NAME,B.XIDUSN,B.XIDSLOT,B.XIDSQN,B.SESSION_ID,B.ORACLE_USERNAME,B.OS_USER_NAME,B.PROCESS,B.LOCKED_MODE,C.MACHINE,C.STATUS,C.SERVER,C.SID,C.SERIAL#,C.PROGRAMFROMALL_OBJECTSA,V$LOCKED_OBJECTB,SYS.GV_$SESSIONCWHERE(A.OBJECT_ID=B.OBJECT_ID)AND(B.PROCESS=C.PROCESS)ORDERBY1,2杀失落:altersystemkillsessionsid,serial#37、ORACLE的登录成绩,用户名和暗码。

能够间接输出:internal/oracle@serivce_name  sys/change_on_install@serivce_name  system/manager@serivce_name  scott/tiger@serivce_name注重:9i中没有internal/oracle假如选择典范安装则有 scott用户假如自界说能够不安装 scott用户假如是本机则能够省略@serivce_name

oem:(ORACLEENTERPRISEMANAGER)sysman/oem_temp

38、修正表的列名

Oracle9i:altertablexxxrenamecolumnxxtoyy;

Oracle8i&lowerversionconnectsys/passed;updatecol$setname=xxwhereobj#=工具idandname=字段(一样平常不要如许用,会形成意想不到的了局)注:最好是删除再创建新的列

39、把用户形式工具地点的表空间移到新的表空间(1).createthenewtablesapce(2).alterusertestdefaulttablespacetest_data;(3).alterusertestquotaunlimitedontest_data;(4).altertablethe_table_namemovetablespacetest_data;天生剧本:selectaltertable||tname||movetablespacetest_date;fromtabwheretabtype=TABLE(5).rebuildtheindexes;

40、利用OEM备份大概EXP的步骤WIN2000下:

(1).把持面板DD>办理工具DD>盘算机办理DD>当地用户和组DD>用户DD>新建用户sys和sysman(sys和sysman的帐号要和上岸数据库的帐号不异);(2).把持面板DD>办理工具DD>当地平安战略DD>当地战略DD>用户权力指派DD>作为批处置功课上岸DD>增加sys和sysman两个帐号。(3).利用EnterpriseManager设置帮助工具入手下手→程序→Oracle-OraHome81→EnterpriseManager→ConfigurationAssistanta、利用ConfigurationAssistant工具来创立一个新的材料档案库。

(4).把持面板DD>办理工具DD>服务,检察OracleOraHome81ManagementServer是不是启动,假如没有启动,则手动启动该服务。(5).以sysman/oem_temp(default)上岸DBAStudio(第二个选项:上岸到OracleManagementServer),当即修正暗码为你方才在NT下建的用户sysman的暗码。(6).以sysman/***(bluesky)从入手下手→程序→Oracle-OraHome81→Console上岸到把持台。在体系→首选项→首选身份证实(我的首选身份设置以下:)DEFAULT节点:name:sysmanDEFAULT数据库:name:sys(7).在搜刮/增加结点后,以sysman/***上岸到该结点,以sys/***assysdba上岸数据库(也就是在首选身份设置的了局)。(8).在工具→备份办理→导游→预界说备份战略(自界说备份战略)→提交备份企图(9).从入手下手→程序→Oracle-OraHome81→Console上岸到把持台,检察举动(汗青纪录)能够看到你的备份是不是乐成,假如不乐成,能够点击备份看明细。(我第一次也没乐成,厥后我修正体系的一时目次C:WINNTTemp→c:        empystmp,从头启念头器就ok了)

41、怎样修正INTERNAL的口令以下是oracle8的8i你能够模仿来做

(1)、进进DOS下

(2)、默许internal暗码文件在c:orantdatabase下,是埋没属性,文件称号与数据库实例名有关

 如默许ORACLE实例名为ORCL,则internal暗码文件名为pwdorcl.ora

(3)、创建新的internal暗码文件,起个新名字为pwdora8.ora

 orapwd80file=pwdora8.orapassword=Bentries=5     --注:password项必定要用年夜写,而且不要用单引号

(4)、拷贝pwdora8.ora文件到c:orantdatabase目次下

(5)、运转regedit,修正口令文件指向

(6)、找到HKEY_LOCAL_MACHINEOFTWAREORACLE项

 定位ORA_ORCL_PWFILE子项,改动其值为c:orantdatabasepwdora8.ora

(7)、封闭ORACLE数据库,从头启动

(8)、进进svrmgr30服务程序,测试internal暗码是不是变动乐成

42、凭据检索失利的断交办法。

缘故原由:因为Oracle不克不及使用OS认证而招致凭据检索失利办理举措:(1).翻开network/admin下的sqlnet.ora修正SQLNET.AUTHENTICATION_SERVICES=(NONE)。(2).启动Net8configurationassistant-->选第三项当地收集服务名设置-->删除...(删除本来的当地收集服务名)

(3).反复第二步-->增加..(新建当地收集服务名)

(4).restartoracle注重:NTS是WinNT的认证体例

43、命令行编译存储历程

ALTERPROCEDUREprocedure_nameCOMPILE;

44、关于怎样创建数据库链接(DBlink)

能够经由过程创建客户机数据库收集服务名的举措,将服务器的名字或是IP地点设置为你必要毗连的谁人呆板就行

假如你要在一个使用中毗连它,如今做好上步事情,然后按以下处置

创建数据库毗连CREATEDATABASELINKDBaseLinkNameCONNECTTOUserNameIDENTIFIEDBYPasswordUSINGNetServiceName;DBaseLinkName是创建的数据毗连称号UserName是能够毗连到的用户名Password是能够毗连到的用户的暗码NetServiceName是能够毗连的数据库收集服务名或是数据库名

查询创建数据毗连的表实例Select*FromTableName@DBaseLinkName;

注重:假如在CREATEDATABASELINKDBaseLinkNameCONNECTTOUserNameIDENTIFIEDBYPasswordUSINGNetServiceName;中NetServiceName是数据库名修正init.ora中:global_names=true不然global_names=falseinit.ora中:global_names=false45、ObjectBrowser7.0中文版的破解办法

到OBJECTBROWSER的目次里,找到DeIsL1.isu文件,用记事本翻开,看到的是乱码吧?不妨,将StirlingTechnologies,Inc这个字符串后面的乱码往失落(假如有的话),让后在Stirling之前加一个空格(必定要加的),保留,加入,从头运转一下看看,固然另有提醒输出考证信息,可是不必管他,间接断定就行。是否是能够用了呢?包管好使。

46、毛病号ORA-01536:spacequotaexceededfortablespaceALCATEL的办理举措三个办理举措,任你选择:(1)alteruserUSERNAMEquota100MonTABLESPACENAME;(2)alteruserUSERNAMEquotaunlimitedonTABLESPACENAME;(3)grantunlimitedtablespacetoUSERNAME;

47、怎样在Oracle中捕捉到SQL语句的全体操纵内容

SELECTosuser,username,sql_textfromv$sessiona,v$sqltextbwherea.sql_address=b.addressorderbyaddress,piece;

48、ORACLE中怎样完成自增字段:

(1)第一种办法ORACLE一样平常的做法是同时利用序列和触发器来天生一个自增字段.CREATESEQUENCESEQnameINCREMENTBY1STARTWITH1MAXVALUE99999999/CREATETRIGGERTRGnameBEFOREINSERTONtable_nameREFERENCINGNEWAS:NEWFOREACHROWBeginSELECTSEQname.NEXTVALINTO:NEW.FIELDnameFROMDUAL;End;

(2)第二种办法:CREATEORREPLACETRIGGERTR1BEFOREINSERTONtemp_tableFOREACHROWdeclarecom_numNUMBER;BEGINSELECTMAX(ID)INTOCOM_NUMFROMTEMP_TABLE;:NEW.ID:=COM_NUM+1;ENDTR1;

49、job的利用:

修正initsid.ora参数job_queue_processes=48i,9i(同意同时实行的JOB数)job_queue_interval=108ijob_queue_keep_connections=true8i

DBMS_JOB.SUBMIT(:jobno,//job号your_procedure;,//要实行的历程trunc(sysdate)+1/24,//下次实行工夫trunc(sysdate)+1/24+1//每次距离工夫);删除job:dbms_job.remove(jobno);修正要实行的操纵:dbms_job.what(jobno,what);修正下次实行工夫:dbms_job.next_date(job,next_date);修正距离工夫:dbms_job.interval(job,interval);中断job:dbms.broken(job,broken,nextdate);启动job:dbms_job.run(jobno);

注重:修正后必定要COMMIT;

例子:VARIABLEjobnonumber;beginDBMS_JOB.SUBMIT(:jobno,Procdemo;,//Procdemo为历程称号SYSDATE,SYSDATE+1/720);commit;end;

50、怎样设置mts

修正初始化参数文件增添以下内容:mts_dispatchers="(protocol=TCP)(disp=2)(con=1000)"mts_max_dispatchers=50mts_servers=20mts_max_servers=50

51、掏出一个表的最初一笔记录

select*from(selectrownumid,tname.*fromtname)awherea.id=(selectcount(*)froma);

52、重做日记(Redolog)被删失落,经由过程甚么办法才干恢复!

先mount数据库,然后再目次下建同名文件redo01.log、redo02.log、redo03.log然后实行alterdatabseclearlogfilegroupn关于current的group,实行alterdatabseclearunarchivedlogfilegroupn然后,再open,就ok了

53、Oracle罕见服务

几个次要的:

OracleOraHome81TNSListener监听服务OracleServiceSIDORACLE服务OracleOraHome81Agent智能代办署理服务OracleOraHome81CMan毗连办理服务OracleOraHome81HTTPServerAPACHEWEB服务OracleOraHome81ManagementServerORACLE企业办理器服务OracleOraHome81NamesORACLE定名服务

剩下的也不经常使用。

54、ORACLE的热备份

在不封闭数据库的时分举行ORACLE的备份。

道理停庞大的,你往找本书看看吧。

举个复杂的例子:备份表空间USERS

ALTERTABLESPACEUSERSBEGINBACKUPCOPYUSERSTABLESPACE的数据文件到备份目次ALTERTABLESPACEUSERSENDBACKUP

55、招致索引不起感化的办理举措

你的成绩我刚处置过,是由optimizer_mode参数引发的,该参数的默许值为choose,即为如表有statis则查询走基于cost的体例,不然走基于rule的体例,因些你能够有以下几个办理办法。(1)、复杂的在init<sid>.ora中设optimizer_mode=rule,重起数据库。(2)、利用analyzetabletable_name(索引基表)deletestatistics;(3)、最初一个全能举措,将表和索引drop失落,重修。

56、关于数据库历程的成绩。

(1).检察相干历程在数据库中的会话Selecta.sid,a.serial#,a.program,a.status,substr(a.machine,1,20),a.terminal,b.spidfromv$sessiona,v$processbwherea.paddr=b.addrandb.spid=&spid;

(2).检察数据库中被锁住的工具和相干会话selecta.sid,a.serial#,a.username,a.program,c.owner,c.object_namefromv$sessiona,v$locked_objectb,all_objectscwherea.sid=b.session_idandc.object_id=b.object_id;

(3).检察相干会话正在实行的SQLselectsql_textfromv$sqlareawhereaddress=(selectsql_addressfromv$sessionwheresid=&sid);

57、检察IP地点selectSYS_CONTEXT(USERENV,IP_ADDRESS)fromdual;

58、运转SQLPLUS时不必输出用户名和暗码,进进以后利用CONNECTSQLPLUS/NOLOGSQL>CONNECTSCOTT/TIGER

59、检察以后会话

userenv()函数

selectuserenv(language)fromdual字符集selectuserenv(isdba)fromdual是不是DBAselectuserenv(sessionid)fromdualsessionidselectuserenv(TERMINAL)fromdual客户端名字selectuserenv(INSTANCE)fromdual实例数

SYS_CONTEXT()函数selectSYS_CONTEXT(USERENV,CURRENT_SCHEMA)fromdual;以后形式selectSYS_CONTEXT(USERENV,CURRENT_SCHEMAID)fromdual;以后形式IDselectSYS_CONTEXT(USERENV,CURRENT_USER)fromdual;以后用户selectSYS_CONTEXT(USERENV,DB_NAME)fromdual;数据库selectSYS_CONTEXT(USERENV,HOST)fromdual;主机..........

60、删除反复列的办法

(1)DELETEFROMtable_nameAWHEREROWID>(SELECTmin(rowid)FROMtable_nameBWHEREA.key_values=B.key_values);(2)createtabletable2asselectdistinct*fromtable1;droptable1;renametable2totable1;(3)Deletefrommytablewhererowidnotin(selectmax(rowid)frommytablegroupbycolumn_name);(4)deletefrommytablet1whereexists(selectxfrommy_tablet2wheret2.key_value1=t1.key_value1andt2.key_value2=t1.key_value2...andt2.rowid>t1.rowid);

61、ORA-12571:TNS:packetwriterfailure(包写进程序失利)

(1)这个毛病在客户端碰到过,一般从头毗连一下服务器就行了。服务重视新启动的时分,在client也会碰到该毛病。这个毛病你是在server仍是client上碰到的?最经常使用的举措就是加上跟踪,检察一下跟踪纪录,剖析剖析毛病的缘故原由。收集成绩也会呈现该毛病,好比收集路由没有设置好。(2)安装的杀毒软件招致的(3)服务器真个IP是不是被修改(4)最初不可的话,从头创立监听器62、ORACLE服务不克不及主动启动的办理举措

把ORACLEHOME
etworkADMINqlnet.ora文件中的sqlnet.authentication_service=(nts)正文失落就能够了

63、不完整的工夫点恢复

shutdownimmediatecopy备份文件到必要恢复的目次下startupmountrecoverdatabaseuntiltime2002-12-2609:00:00

alterdatabaseopenresetlogs

本人细心反省一下,不会产生如许的成绩的。

64、oracle怎样设置查询超时

select/*+timeout30*/*fromveryLargeTable

65、修正字符集

(1)、ALTERDATABAECHARACTERSETSIMPLIFIEDCHINESE_CHINA.ZHS16GBK;

(2)、updateprops$setvalue$=ZHS16CGB231280wherename=NLS_CHARACTERSET;updateprops$setvalue$=ZHS16CGB231280wherename=NLS_NCHAR_CHARACTERSET;

倡议不利用(2)

注重:(1)、实行ALTERDATABASECHARACTERSET必需有SYSDBA权限,而且在STARTUPRESTRICT形式下实行(2)、原字符集必需是方针字符集的一个真子集(就是荡子所说的只能从WE8ISO8859P1转到ZHS16GBK的缘故原由)(3)、CLOB字段装换大概有成绩,倡议在转换之前把有CLOB字段的表导出后DROP,转换今后再导回(4)、该转换不成逆,以是在做这个操纵之前倡议做数据库全备份

66、修正数据库名字

(1)、启动svrmgrl,以文本体例备份把持文件oracle>svrmgrlsvrmgrl>connectinternalsvrmgrl>altersystembackupcontrolfiletotrace(2)、编纂发生的跟踪文件,在udump目次下改CREATECONTROLFILEREUSEDATABASE"CTC"NORESETLOGSARCHIVELOG中的REUSE为SET然后把createcontrolfile这段语句拷出(3)、一般宕库,后启动到nomount下svrmgrl>shutdownimmediatesvrmgrl>startupnomount(4)、实行createcontrolfile那段语句(5)、翻开数据库 svrmgrl>alterdatabaseopen 如提醒用resetlogs选项则利用svrmgrl>alterdatabaseopenresetlogs(8)、响应修正初始化参数



67、rownum的用法

select*from(selectt.*,rownumidfromdeptt)whereidbetween1and20

68、oracle的外部参数

SELECTa.ksppinmNAME,b.ksppstdfdefault_val,a.ksppdescDESCRIPTIONFROMx$ksppia,x$ksppcvbWHEREa.indx=b.indxANDsubstr(a.ksppinm,1,1)=_ORDERBYa.ksppinm

69、9i安装时报areasqueries毛病的办理举措包含IAS和IDS把安装源文件目次全体改成英笔墨母或数字注重:不克不及是中文的路径

70、我怎样晓得一个表空间另有几能够用

(1)、SELECTupper(f.tablespace_name)表空间名,d.Tot_grootte_Mb"表空间巨细(M)",d.Tot_grootte_Mb-f.total_bytes"已利用空间(M)",round((d.Tot_grootte_Mb-f.total_bytes)/d.Tot_grootte_Mb*100,2)"利用比",f.total_bytes"余暇空间(M)",f.max_bytes"最年夜块(M)"FROM(SELECTtablespace_name,round(SUM(bytes)/(1024*1024),2)total_bytes,round(MAX(bytes)/(1024*1024),2)max_bytesFROMsys.dba_free_spaceGROUPBYtablespace_name)f,(SELECTdd.tablespace_name,round(SUM(dd.bytes)/(1024*1024),2)Tot_grootte_MbFROMsys.dba_data_filesddGROUPBYdd.tablespace_name)dWHEREd.tablespace_name=f.tablespace_nameORDERBY4DESC(2)、selecttablespace_name,round(sum(bytes)/1024/1024,2)"M"fromdba_free_spacegroupbytablespace_name

71、creckpl/sqldeveloper的办法

(1)、安装pl/sqldeveloper(2)、用UltraEdit将程序PLSQLDev.exe翻开(3)、将UltraEdit设置为16进制形式(4)、查找串:BA1E0000002BD0修正:2BD0为:4A90(5)、存盘加入(6)、运转PLSQLDev.exe,假如提醒你另有29天的工夫可用,那就祝贺你了!

72、使索引有效

ALTERINDEXidxUNUSABLE;ALTERINDEXidx_acctnoDISABLE;(onlytoafunctionbasedindex)

73、在SQLPLUS中给指定用户举行setautotraceon/off以SCOTT用户为例:

SQL>CONNECTscott/tigerconnected.SQL>@$ORACLE_HOME/RDBMS/ADMIN/UTLXPLAN.SQLTablecreated.SQL>CONNECT/ASSYSDBAconnected.SQL>@$ORACLE_HOME/SQLPLUS/ADMIN/PLUSTRCE.SQLdroproleplustrace;Roledropped.createroleplustrace;Rolecreated..grantplustracetodbawithadminoption;Grantsucceeded.

SQL>GRANTPLUSTRACETOSCOTT;

Grantsucceeded.

SQL>CONNECTSCOTT/TIGER

connected.

SQL>setautotraceon

SQL>

74、关于束缚的四种形态

Disablednovalidate:当束缚使不克不及时,束缚的划定规矩不克不及强迫在列(包括在束缚中)的数据之上。但束缚的界说保留在数据字典中。在实行数据堆栈卷起(rollup)或装载且要加速装载历程时该体例是有效的。Enablednovalidate:是能有效,该形态的表能够包括不法的数据,但不成能到场新的不法数据。Enabledvalidate:使能无效,一个使能的束缚是强迫的,表的数据反省无效

75、在SQLPLUS中挪用存储历程

SETSERVEROUTPUTONdeclareout_paramvarchar2(100);beginyour_proc(1,out_param);dbms_output.put_line(out_param);end;/SETSERVEROUTPUTOFF

75、天生体系表和存储历程的三个文件。

cat*.sqldbms*.sqlutl*.sql

76、JOB中日期的利用

每月1号:last_day(sysdate)+1每一个季度的第一天:to_date(decode(to_char(sysdate,q),1,to_char(sysdate,yyyy)||0101,2,to_char(sysdate,yyyy)||0401,3,to_char(sysdate,yyyy)||0701,4,to_char(sysdate,yyyy)||1001),yyyymmdd)天天:sysdate+1每一个礼拜几:decode(to_char(sysdate,w),1,sysdate+7,to_char(sysdate,w),2,sysdate+6,to_char(sysdate,w),3,sysdate+5,to_char(sysdate,w),4,sysdate+4,to_char(sysdate,w),5,sysdate+3,to_char(sysdate,w),6,sysdate+2,to_char(sysdate,w),7,sysdate+1)

每一个礼拜x下战书三点:interval(21,next_day(trunc(sysdate),x+1)+15/24);

每一个季度的第一个礼拜x:interval(21,next_day(trunc(sysdate,Q),3),5));

77、利用executeimmediate的成绩

8i以上才撑持executeimmediate8.05只能用dbms_sql最好利用executeimmediate

78、ORACLE9i中删除表空间中数据文件的办法droptablespacetbsnameincludingcontents

79、找出串中的数字

SELECTTRANSLATE(2KRW229,0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ,0123456789)"Translateexample"FROMDUAL/

2229

--满是数字的:select*from你的表wheretranslate(你的列,0123456789,)=;

select*from你的表wheretrim(ltrim(rtrim(replace(col_name,0123456789,))))isnull



80、剖析表analyzetablemzbs.db_codeESTIMATESTATISTICSSAMPLE20PERCENT;

81、表空间办理和用户办理

--检察表空间和数据文件

selectfile_name,tablespace_name,autoextensiblefromdba_data_files;

--数据表空间

CREATETABLESPACEUSER_DATALOGGINGDATAFILED:ORACLEORADATAORCL        est.DBFSIZE50mREUSE,c:USERS01112.DBFSIZE50mREUSEAUTOEXTENDONNEXT1280KMAXSIZE16383MEXTENTMANAGEMENTLOCAL

--一时表空间

CREATETEMPORARYTABLESPACEUSER_DATA_TEMPTEMPFILED:TEMP0111.DBFSIZE50MREUSEAUTOEXTENDONNEXT1024KMAXSIZE16383MEXTENTMANAGEMENTLOCALUNIFORMSIZE1024K

--增添数据文件

ALTERTABLESPACEUSER_DATAADDDATAFILEc:USERS01113.DBFSIZE50M;

ALTERTABLESPACEUSER_DATAADDDATAFILEc:USERS01114.DBFSIZE50MAUTOEXTENDON;

--删除表空间

DROPTABLESPACEUSER_DATAINCLUDINGCONTENTS;

--修正数据文件巨细ALTERDATABASEDATAFILEc:USERS01113.DBFRESIZE40M;

--创立用户、付与权限

CREATEUSERUSER_DATAPROFILEDEFAULTIDENTIFIEDBYUSER_DATADEFAULTTABLESPACEUSER_DATATEMPORARYTABLESPACEUSER_DATAACCOUNTUNLOCK;GRANTCONNECTTOUSER_DATA;GRANTRESOURCETOUSER_DATA;

--把表移到另外一个表空间ALTERTABLETABLENAMEMOVETABLESPACETABLESPACENAME;

--创立索引

CREATEINDEXINDEXNAMEONTABLENAME(COLUMNNAME);

CREATEINDEXINDEXNAMEONTABLENAME(COLUMNNAME)TABLESPACETABLESPACENAME;

--从头创建索引

ALTERINDEXINDEXNAMEREBUILDTABLESPACETABLESPACE;

--创立表

CREAETABLETABLENAME(COLUMN1COLUTYPEDEFAULT(VALUE)NOTNULL)(COLUMN2COLUTYPEDEFAULT(VALUE)NOTNULL);

--建表的索引存储分派

CREATETABLEsummit.employee(idNUMBER(7)CONSTRAINTemployee_id_pkPRIMARYKEYDEFERRABLEUSINGINDEXSTORAGE(INITIAL100KNEXT100K)TABLESPACEindx,last_nameVARCHAR2(25)CONSTRAINTemployee_last_name_nnNOTNULL,dept_idNUMBER(7))TABLESPACEdata;

--创建主键

ALTERTABLETABLENAMEADDCONSTRAINTCONSTRAINTNAMEPRIMARYKEY(COLUMN1,COLUMN2)

--使束缚有效

ALTERTABLETABLENAMEENABLENOVALIDATECONSTRAINTCONSTRANAME;

ALTERTABLETABLENAMEENABLEVALIDATECONSTRAINTCONSTRANAME;

--删除束缚

ALTERTABLETABLENAMEDROPCONSTRAINTconstraintname;

DROPTABLETABLENAEMCASCADECONSTRAINTS;(删除表后将所用的外键删除)

--给表增添列

ALTERTABLETABLENAMEADDCOLUMNCOLUTYPEDEFAULT(VALUE)NOTNULL;

--给列增添缺省值

ALTERTABLETABLENAMEMODIFYCOLUMNNAMEDEFAULT(VALUE)NOTNULL;

--给表增添外键ALTERTABLETABLENAMEADDCONSTRAINTCONSTRAINTNAMEFOREIGNKEY(COLUMN)REFERENCESTABLE1NAME(COLUMN1);
“通过有能力的DBA的一个简单计划,MySQL可以达到令人难以想像的运行速度,”一位资深DBA如此表示。MySQL中没有多余的功能来拖累CPU或占用内存。
海妖 该用户已被删除
沙发
发表于 2015-1-18 15:42:14 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-22 07:47:31 | 只看该作者
SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。
若相依 该用户已被删除
地板
发表于 2015-1-30 23:48:03 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
5#
发表于 2015-2-6 17:10:51 | 只看该作者
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
冷月葬花魂 该用户已被删除
6#
发表于 2015-2-17 13:54:44 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-5 19:46:35 | 只看该作者
也可谈一下你是怎么优化存储过程的?
再见西城 该用户已被删除
8#
发表于 2015-3-12 13:22:36 | 只看该作者
SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
小魔女 该用户已被删除
9#
发表于 2015-3-19 22:36:04 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 11:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表