欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle如何更新腳本 oracle怎么更新數(shù)據(jù)

oracle 怎樣數(shù)據(jù)庫(kù)同步腳本

為方便完成指定數(shù)據(jù)表的同步操作,可以采用dblink與merge結(jié)合的方法完成。

發(fā)展壯大離不開(kāi)廣大客戶長(zhǎng)期以來(lái)的信賴(lài)與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都會(huì)所設(shè)計(jì)等,在成都網(wǎng)站建設(shè)公司成都全網(wǎng)營(yíng)銷(xiāo)推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開(kāi)發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。

操作環(huán)境: 此數(shù)據(jù)庫(kù)服務(wù)器ip為192.168.196.76,有center與branch兩個(gè)庫(kù),一般需要將center的表數(shù)據(jù)同步到branch,center為源庫(kù),branch為目標(biāo)庫(kù),具體步驟如下:

1.在源庫(kù)創(chuàng)建到目標(biāo)庫(kù)的dblink

create database link branch???? --輸入所要?jiǎng)?chuàng)建dblink的名稱(chēng),自定義?? connect to dbuser identified by “password”? --設(shè)置連接遠(yuǎn)程數(shù)據(jù)庫(kù)的用戶名和密碼?? using '192.168.196.76/branch';? --指定目標(biāo)數(shù)據(jù)庫(kù)的連接方式,可用tns名稱(chēng)

在創(chuàng)建dblink時(shí),要注意,有時(shí)候可能會(huì)報(bào)用戶名和密碼錯(cuò)誤,但實(shí)際上我們所輸入的賬戶信息是正確的,此時(shí)就注意將密碼的大小寫(xiě)按服務(wù)器上所設(shè)置的輸入,并在賬號(hào)密碼前號(hào)加上雙引號(hào)(服務(wù)器版本不同造成的)。

2.成功后驗(yàn)證dblink

select * from tb_bd_action@branch; --查詢創(chuàng)建好的brach庫(kù)

正常情況下,如果創(chuàng)建dblink成功,可采用該方式訪問(wèn)到遠(yuǎn)程數(shù)據(jù)庫(kù)的表.

3.通過(guò)merge語(yǔ)句完成表數(shù)據(jù)同步

此例中需要將center庫(kù)中的tb_sys_sqlscripe表同步到branch,簡(jiǎn)單的語(yǔ)法如下:

merge into tb_sys_sqlscripe@branch b using tb_sys_sqlscripe c on (b.pk=c.pk)? --從center將表merge到branch,同步的依據(jù)是兩個(gè)表的pk

when matched then? update set b.sqlscripe=c.sqlscripe,b.author=c.author? --如果pk值是相同則將指定表的值更新到目標(biāo)表

when not matched then ? --如果pk值不一至,則將源表中的數(shù)據(jù)整條插入到目標(biāo)表中

insert values (c.pk, c.fk, c.createtime, c.lastmodifytime,c.author,c.module,c.deleteflag, c.scripttype);

commit;?????????????? --記得merge后必須commit,否則更改未能提交

4.為方便每次需要同步時(shí)自動(dòng)完成同步工作,可將該語(yǔ)句做成存儲(chǔ)過(guò)程或腳本來(lái)定時(shí)執(zhí)行或按要求手動(dòng)執(zhí)行,簡(jiǎn)單說(shuō)一下創(chuàng)建腳本的方法:

a.創(chuàng)建merge文件夾

b.先將merge語(yǔ)句寫(xiě)完整后,存到merge.sql文件中

c.新建merge.bat文件,編輯后寫(xiě)入以下內(nèi)容

sqlplus user/password@serverip/database @"%cd%\merge.sql"

如何升級(jí)oracle版本

本文檔旨在提供指南和核對(duì)清單,用于將之前升級(jí)的數(shù)據(jù)庫(kù)從Oracle12c降級(jí)回以前的版本:11.2.0.3,11.2.0.2,11.1.0.7必須加以說(shuō)明的是,將數(shù)據(jù)庫(kù)實(shí)例從當(dāng)前版本降級(jí)到升級(jí)前的版本時(shí),數(shù)據(jù)庫(kù)不會(huì)返回到升級(jí)前的完全相同狀態(tài)。根據(jù)所涉及的版本,升級(jí)過(guò)程會(huì)進(jìn)行不可逆的更改。用戶使用降級(jí)過(guò)程可以打開(kāi)和訪問(wèn)以前版本的數(shù)據(jù)庫(kù)實(shí)例。這通常便已足夠。可能需要采取其他更正操作(例如卸載/重新安裝或重新升級(jí)到當(dāng)前補(bǔ)丁集級(jí)別來(lái)解決降級(jí)后的遺留問(wèn)題。如果目標(biāo)是讓實(shí)例返回與升級(jí)前完全相同的狀態(tài),則還應(yīng)使用包括完全恢復(fù)到升級(jí)前狀態(tài)在內(nèi)的其他過(guò)程。本文中討論的過(guò)程是基于腳本的降級(jí)。本文不介紹使用導(dǎo)出/導(dǎo)入、數(shù)據(jù)泵或其他方法將數(shù)據(jù)從一個(gè)版本移動(dòng)到另一個(gè)版本。您所降級(jí)到的版本的Oracle二進(jìn)制文件,在開(kāi)始降級(jí)過(guò)程之前應(yīng)該在服務(wù)器上可用/已安裝。如果您卸載了要降級(jí)到的Oracle可執(zhí)行文件,請(qǐng)重新安裝Oracle二進(jìn)制文件到正確的版本/補(bǔ)丁程序級(jí)別以降級(jí)。此過(guò)程旨在降級(jí)已成功升級(jí)到12c的數(shù)據(jù)庫(kù),并非用于從失敗的升級(jí)退回。您只能降級(jí)到升級(jí)前所用的版本和補(bǔ)丁程序級(jí)別。直接升級(jí)可以在版本10.2.0.5、11.1.0.7或版本11.2.0.2及更高版本上執(zhí)行。可以對(duì)這些版本中除10.2.0.5之外的版本進(jìn)行降級(jí)。例如,如果通過(guò)應(yīng)用中間補(bǔ)丁程序11.1.0.7從Oracle11.1.0.6升級(jí)到Oracle12c(12.1.0),則不能降級(jí)到Oracle11.1.0.6。降級(jí)只能對(duì)直接升級(jí)版本執(zhí)行。例外:雖然可以對(duì)10.2.0.5直接升級(jí),但降級(jí)不適用于10.2.0.5。這是因?yàn)樵谏?jí)過(guò)程中,compatible參數(shù)已設(shè)置為最低11.0.0。這使得無(wú)法降級(jí)到10.2.0.5。可以降級(jí)的版本為11.1.0.7、11.2.0.2、11.2.0.3或更高版本。如果有任何補(bǔ)丁程序應(yīng)用到了從升級(jí)后的主目錄運(yùn)行的源數(shù)據(jù)庫(kù),則需要先回退,然后才能開(kāi)始降級(jí)過(guò)程。卸載和回退補(bǔ)丁程序的步驟記錄在所涉及補(bǔ)丁程序的自述文件中。未能卸載和回退補(bǔ)丁程序可能會(huì)導(dǎo)致無(wú)法降級(jí),包括無(wú)法重新驗(yàn)證字典對(duì)象。Exadata捆綁補(bǔ)丁程序示例,其過(guò)程為:卸載補(bǔ)丁程序示例:$opatchauto/u01/app/oracle/patches/14103267-rollback回退任何在補(bǔ)丁程序應(yīng)用過(guò)程中應(yīng)用的SQL:示例:SQL@rdbms/admin/catbundle_EXA__ROLLBACK.sql,用于回退SQL更改。解決方案降級(jí)前步驟-XMLDB組件在12c中是必需的。在升級(jí)到12c期間,將安裝XMLDB組件(如果未安裝)。從12c降級(jí)將刪除安裝的XDB組件-EnterpriseManager不支持降級(jí)。在降級(jí)之前,請(qǐng)重新配置OracleEM控件。請(qǐng)參閱OracleDatabaseUpgradeGuide12cRelease1(12.1)E17642-106DowngradingOracleDatabasetoanEarlierRelease6.6.5RestoringOracleEnterpriseManagerafterDowngradingOracleDatabase-升級(jí)到12c期間,將刪除DatabaseControl資料檔案庫(kù)。降級(jí)之后,請(qǐng)重新配置DBControl。Note870877.1HowToSaveOracleEnterpriseManagerDatabaseControlDataBeforeUpgradingTheSingleInstanceDatabaseToOtherRelease?Note876353.1HowToRestoreTheOracleEnterpriseManagerDataToDowngradeTheSingleInstanceDatabaseToPrevious/SourceRelease?-compatible參數(shù)不能已經(jīng)更改到12.1.0。-禁用DataVault(如果已啟用)。Note803948.1HowToUninstallOrReinstallDatabaseVaultin11g(UNIX)Note453902.1EnablingandDisablingOracleDatabaseVaultinWINDOWS-如果數(shù)據(jù)庫(kù)使用OracleLabelSecurity,則在新OracleDatabase12cOracle主目錄中運(yùn)行OracleLabelSecurity(OLS)預(yù)處理降級(jí)olspredowngrade.sql腳本(在$ORACLE_HOME/rdbms/admin上提供)。-時(shí)區(qū)版本應(yīng)相同。-取消設(shè)置并指向12c主目錄的ORA_TZFILE(如果已設(shè)置)。-如果數(shù)據(jù)庫(kù)上有OracleApplicationExpress,則必須將apxrelod.sql文件從OracleDatabase12c$ORACLE_HOME/apex/目錄復(fù)制到Oracle主目錄之外的目錄,例如系統(tǒng)上的臨時(shí)目錄以稍后執(zhí)行。-如果基于固定對(duì)象創(chuàng)建了對(duì)象,則刪除這些對(duì)象以避免可能的ORA-00600錯(cuò)誤。您可以在降級(jí)之后重新創(chuàng)建這些對(duì)象。-如果降級(jí)集群數(shù)據(jù)庫(kù),則徹底關(guān)閉實(shí)例并將CLUSTER_DATABASE初始化參數(shù)更改為FALSE。降級(jí)之后,必須將此參數(shù)設(shè)置回TRUE。滿足以上先決條件之后,可以繼續(xù)進(jìn)行降級(jí)。數(shù)據(jù)庫(kù)的降級(jí)步驟1)確保所有數(shù)據(jù)庫(kù)組件有效。只能從成功升級(jí)的數(shù)據(jù)庫(kù)執(zhí)行降級(jí)。要驗(yàn)證數(shù)據(jù)庫(kù)組件狀態(tài),請(qǐng)執(zhí)行以下查詢以SYS用戶身份連接到數(shù)據(jù)庫(kù)colcomp_idformata10colcomp_nameformata30colversionformata10colstatusformata8selectsubstr(comp_id,1,15)comp_id,substr(comp_name,1,30)comp_name,substr(version,1,10)version,statusfromdba_registry2)驗(yàn)證沒(méi)有屬于sys/system的無(wú)效對(duì)象selectowner,count(object_name)"Invalidobjectcount"fromdba_objectswherestatus!='VALID'andownerin('SYS','SYSTEM')groupbyowner;如果計(jì)數(shù)為零,則可以繼續(xù)降級(jí)。如果有無(wú)效對(duì)象,則執(zhí)行utlrp.sql多次,如果對(duì)象無(wú)法解析為有效狀態(tài),則不能繼續(xù)降級(jí)。建立SR或在DBA社區(qū)上發(fā)帖以尋求幫助。或者,對(duì)于1和2,運(yùn)行以下腳本:Note556610.1ScripttoCollectDBUpgrade/MigrateDiagnosticInformation(dbupgdiag.sql)3)關(guān)閉數(shù)據(jù)庫(kù)Shutdownimmediate4)對(duì)12c數(shù)據(jù)庫(kù)做備份5)以降級(jí)模式啟動(dòng)數(shù)據(jù)庫(kù)Startupdowngrade;6)執(zhí)行降級(jí)腳本SqlSpooldowngrade.logSql@$ORACLE_HOME/rdbms/admin/catdwgrd.sql注:$ORACLE_HOME應(yīng)指向12c主目錄catdwgrd.sql腳本將數(shù)據(jù)庫(kù)中的所有組件降級(jí)到支持的主版本或補(bǔ)丁集版本(您最初升級(jí)時(shí)的版本)SqlspooloffSqlshutdownimmediateExitSQLPlusSqlexit;7)如果操作系統(tǒng)為L(zhǎng)INUX/UNIX:將以下環(huán)境變量更改為要降級(jí)到的源數(shù)據(jù)庫(kù):ORACLE_HOMEPATH編輯/etc/oratabor/var/opt/oracle/oratab以更改將數(shù)據(jù)庫(kù)映射到源數(shù)據(jù)庫(kù)Oracle主目錄如果操作系統(tǒng)是Windows,則完成以下步驟:a.停止所有Oracle服務(wù),包括OracleDatabase12c數(shù)據(jù)庫(kù)的OracleServiceSIDOracle服務(wù),其中SID是實(shí)例名稱(chēng)。例如,如果SID為ORCL,則在命令行提示符中輸入以下內(nèi)容:C:\NETSTOPOracleServiceORCLb.在命令提示符下,通過(guò)運(yùn)行ORADIM命令刪除Oracle服務(wù)。如果出現(xiàn)提示,則輸入此Windows系統(tǒng)上活動(dòng)標(biāo)準(zhǔn)用戶帳戶的口令。例如,如果SID為ORCL,則輸入以下命令:C:\ORADIM-DELETE-SIDORCLc.在命令提示符下,使用ORADIM命令創(chuàng)建要降級(jí)的數(shù)據(jù)庫(kù)的Oracle服務(wù)。C:\ORADIM-NEW-SIDSID-INTPWDPASSWORD-MAXUSERSUSERS-STARTMODEAUTO-PFILEORACLE_HOME\DATABASE\INITSID.ORA8)還原配置文件將配置文件(口令文件、參數(shù)文件等)還原到降級(jí)版本的ORACLE_HOME。9)如果這是OracleRAC數(shù)據(jù)庫(kù),則執(zhí)行以下命令以將數(shù)據(jù)庫(kù)修改為單實(shí)例模式:SETCLUSTER_DATABASE=FALSE10)從降級(jí)版本$ORACLE_HOME/rdbms/admin目錄執(zhí)行catrelod腳本。啟動(dòng)sqlplus,以具有sysdba權(quán)限的用戶SYS身份連接到數(shù)據(jù)庫(kù)實(shí)例,然后以升級(jí)模式啟動(dòng)數(shù)據(jù)庫(kù)::cd$ORACLE_HOME/rdbms/admin:sqlplussqlconnectsysassysdbasqlstartupupgradesqlspoolcatrelod.logsql@?/rdbms/admin/catrelod.sqlsqlspooloffcatrelod.sql腳本在降級(jí)的數(shù)據(jù)庫(kù)中重新加載各個(gè)數(shù)據(jù)庫(kù)組件的合適版本。11)運(yùn)行utlrp.sql腳本:SQL@utlrp.sqlSqlexit;utlrp.sql腳本重新編譯先前處于INVALID狀態(tài)的所有現(xiàn)有PL/SQL模塊,例如package、procedure、type等。12)檢查已降級(jí)數(shù)據(jù)庫(kù)的狀態(tài):Note556610.1ScripttoCollectDBUpgrade/MigrateDiagnosticInformation(dbupgdiag.sql)此sql腳本是一組查詢語(yǔ)句,用于提供用戶友好的輸出,以在升級(jí)前后診斷數(shù)據(jù)庫(kù)的狀態(tài)。腳本將創(chuàng)建名為db_upg_diag__.log的文件。13)降級(jí)之后,可能在sys用戶下發(fā)現(xiàn)無(wú)效的QT視圖。這是因?yàn)橐晥D已從基表中選擇了錯(cuò)誤的列。您需要重新創(chuàng)建這些視圖。請(qǐng)參閱說(shuō)明:Note1520209.1QT_*BUFERViewsInvalidafterdowngradefrom12C降級(jí)后步驟:1)如果您是降級(jí)到OracleDatabase11g版本1(11.1.0.7)并且數(shù)據(jù)庫(kù)中有OracleApplicationExpress,則轉(zhuǎn)到您將apxrelod.sql腳本復(fù)制到的目錄(在降級(jí)前步驟中)。運(yùn)行apxrelod.sql腳本以手動(dòng)重新加載OracleApplicationExpress:SQL@apxrelod.sql運(yùn)行apxrelod.sql腳本以避免程序包APEX_030200.WWV_FLOW_HELP由于以下錯(cuò)誤而成為INVALID狀態(tài):PLS-00201:identifier'CTX_DDL'mustbedeclared2)如果數(shù)據(jù)庫(kù)中啟用了OracleLabelSecurity,則執(zhí)行以下腳本a.從OracleDatabase12c的Oracle主目錄下將olstrig.sql腳本復(fù)制到要將數(shù)據(jù)庫(kù)降級(jí)到的版本的Oracle主目錄。b.從降級(jí)到的版本的Oracle主目錄,運(yùn)行olstrig.sql以在表上使用OracleLabelSecurity策略重新創(chuàng)建DML觸發(fā)器:SQL@olstrig.sql3)如果降級(jí)集群數(shù)據(jù)庫(kù),則必須運(yùn)行以下命令以降級(jí)OracleClusterwaredatabase配置:$srvctldowngradedatabase-ddb-unique-name-ooraclehome-tto_version其中db-unique-name是數(shù)據(jù)庫(kù)名稱(chēng)(而非實(shí)例名稱(chēng)),oraclehome是已降級(jí)數(shù)據(jù)庫(kù)的舊Oracle主目錄的位置,to_version是數(shù)據(jù)庫(kù)所降級(jí)到的數(shù)據(jù)庫(kù)版本

ORACLE更新腳本中判斷類(lèi)型的語(yǔ)句問(wèn)題

少了引號(hào)

原語(yǔ)句是:update RTI_ALARM_ITEM set ALARM_TYPE = 0 where ALARM_TYPE = '其他'

放到execute immediate后面應(yīng)該這樣引用:

execute immediate 'update RTI_ALARM_ITEM set ALARM_TYPE = 0 where ALARM_TYPE = ''其他''';

另外,update完之后你沒(méi)有commit;

修改這兩點(diǎn)你再試試看!

C#.net 如何更新ORACLE表

C#利用update更新數(shù)據(jù)到oracle數(shù)據(jù)庫(kù):

第一步:打開(kāi)oracle數(shù)據(jù)庫(kù)

public static string connString = "";

public static OracleConnection conn = null;

//打開(kāi)數(shù)據(jù)庫(kù)連接

public static bool Open()

{

//從配置文件中獲取連接字符串

//配置文件需要放在項(xiàng)目目錄下的bin\Release中

connString = getXmlValue("connString");

conn = new OracleConnection(getXmlValue("connString"));

try

{

conn.Open();

Console.WriteLine("數(shù)據(jù)庫(kù)連接成功");

return true;

}

catch (System.Exception ex)

{

Console.Write(ex.Message);

MessageBox.Show("未能連接到數(shù)據(jù)庫(kù)");

return false;

}

第二步:執(zhí)行更新方法:

public static int update(int ruleId, int equipmentId, String equipmentName, String propertyName, int ruleType, String ruleRequest, String ruleRequestOther, String ruleExplain)

{

String sql = "update Device_Attr t set t.BASEID = :equipmentId, t.BASENAME = :equipmentName,t.CA_NAME = :propertyName,t.CA_RULETYPE = :ruleType,t.CA_RULETEXT = :ruleRequest,t.CA_RULETEXT2 = :ruleRequestOther,t.CONTENT = :ruleExplain where t.CA_ID =:ruleId";

OracleCommand cmd = new OracleCommand(sql, conn);

OracleParameter param_1 = new OracleParameter(":equipmentId", equipmentId);

cmd.Parameters.Add(param_1);

OracleParameter param_2 = new OracleParameter(":equipmentName", equipmentName + "$");

cmd.Parameters.Add(param_2);

OracleParameter param_3 = new OracleParameter(":propertyName", propertyName);

cmd.Parameters.Add(param_3);

OracleParameter param_4 = new OracleParameter(":ruleType", ruleType);

cmd.Parameters.Add(param_4);

OracleParameter param_5 = new OracleParameter(":ruleRequest", ruleRequest);

cmd.Parameters.Add(param_5);

OracleParameter param_6 = new OracleParameter(":ruleRequestOther", ruleRequestOther);

cmd.Parameters.Add(param_6);

OracleParameter param_7 = new OracleParameter(":ruleExplain", ruleExplain);

cmd.Parameters.Add(param_7);

OracleParameter param_8 = new OracleParameter(":ruleId", ruleId);

cmd.Parameters.Add(param_8);

int result = cmd.ExecuteNonQuery();

return result;

}

網(wǎng)站題目:oracle如何更新腳本 oracle怎么更新數(shù)據(jù)
本文URL:http://chinadenli.net/article10/hpgjdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站網(wǎng)站制作電子商務(wù)網(wǎng)站營(yíng)銷(xiāo)標(biāo)簽優(yōu)化企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)