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

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

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

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

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

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

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

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

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

2.成功后驗證dblink

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

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

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

此例中需要將center庫中的tb_sys_sqlscripe表同步到branch,簡單的語法如下:

merge into tb_sys_sqlscripe@branch b using tb_sys_sqlscripe c on (b.pk=c.pk)? --從center將表merge到branch,同步的依據(jù)是兩個表的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.為方便每次需要同步時自動完成同步工作,可將該語句做成存儲過程或腳本來定時執(zhí)行或按要求手動執(zhí)行,簡單說一下創(chuàng)建腳本的方法:

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

b.先將merge語句寫完整后,存到merge.sql文件中

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

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

如何升級oracle版本

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

ORACLE更新腳本中判斷類型的語句問題

少了引號

原語句是: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完之后你沒有commit;

修改這兩點你再試試看!

C#.net 如何更新ORACLE表

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

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

public static string connString = "";

public static OracleConnection conn = null;

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

public static bool Open()

{

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

//配置文件需要放在項目目錄下的bin\Release中

connString = getXmlValue("connString");

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

try

{

conn.Open();

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

return true;

}

catch (System.Exception ex)

{

Console.Write(ex.Message);

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

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://www.chinadenli.net/article10/hpgjdo.html

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

廣告

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

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