電力信息化系統關系數據庫(開源部分) 第2部分:遷移規(guī)范_第1頁
電力信息化系統關系數據庫(開源部分) 第2部分:遷移規(guī)范_第2頁
電力信息化系統關系數據庫(開源部分) 第2部分:遷移規(guī)范_第3頁
電力信息化系統關系數據庫(開源部分) 第2部分:遷移規(guī)范_第4頁
電力信息化系統關系數據庫(開源部分) 第2部分:遷移規(guī)范_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

[CS**.***

***

CSEE

中國電機工程學會標準

T/CSEEXXXX-YYYY

電力信息化系統關系數據庫(開源部分)第

2部分:遷移規(guī)范

Thesecondpartofpowerinformationsystemrelationaldatabase(opensourcepart):migration

specification

(征求意見稿)

xxxx-XX-XX發(fā)布xxxx-XX-XX實施

中國電機工程學會發(fā)布

T/CSEEXXXX-YYYY

I

T/CSEEXXXX-YYYY

目次

目次..................................................................................II

前言.................................................................................III

電力信息化系統關系數據庫(開源部分)第2部分:遷移規(guī)范..................................4

1范圍..................................................................................4

2規(guī)范性引用文件........................................................................4

3術語和定義............................................................................4

3.1數據類型............................................................................4

3.2普通索引............................................................................4

3.3主鍵索引............................................................................4

3.4觸發(fā)器..............................................................................4

3.5存儲過程..........................................................................4

4符號、代號和縮短語...................................................................4

5數據類型遷移對照......................................................................5

5.1Oracle數據類型....................................................................5

5.2SG-RDB-MS數據類型.................................................................5

5.3Oracle與SG-RDB-MS數據類型對照................................................6

6常用函數/存儲過程寫法對比............................................................7

6.1函數...............................................................................7

6.2存儲過程..........................................................................8

7常見SQL寫法對比...................................................................10

7.1DDL(數據定義語言).................................................................10

7.2DML(數據操作語言).................................................................7

7.3DCL(數據控制語言).................................................................11

7.4TCL(事務控制語言).................................................................12

8其它遷移要點.........................................................................12

9常見問題.............................................................................13

編制說明..........................................................................15

目次......................................................................................1

1編制背景...............................................................................2

2編制主要原則...........................................................................2

3主要工作過程...........................................................................2

4標準結構和內容說明....................................................................2

5標準水平說明............................................................................2

6標準實施措施說明........................................................................3

T/CSEEXXXX-YYYY

電力信息化系統關系數據庫(開源部分)第2部分:遷移規(guī)范

1范圍

本標準規(guī)定了電力信息系統SG-RDB-MS關系數據庫(開源部分)的遷移規(guī)范,從SG-RDBTS

關系數據庫遷移的類型、存儲過程、函數、觸發(fā)相等的轉換要求進行規(guī)范,同時SQL調用語句的

寫法及格式做了詳細描述,充分支撐5G-RDB-MS數據庫遷移應用。

本標準(或本部分或本指導性技術文件)適用于電力信息系統Oracle數據庫向SG-RDB-MS

關系數據庫遷移的規(guī)范要求。

2規(guī)范性引用文件

下列文件對于本文件的應用是必不可少的。凡是注E期的引用文件,僅注日期的版本適用

于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。

《GB/T8567T988計算機軟件產品開發(fā)文件編制指南》

《GB/T9385T988計算機軟件需求說明編制指南》

《GB/T11457-1995軟件工程術語》

《國家電網公司“十二五”信息發(fā)展規(guī)劃》

《國家電網公司SG-ERP總體建設方案》

《國家電網公司系統架構設計方法論》

《國家電網公司應用軟件架構設計規(guī)范》

《國家電網公司應用集成技術規(guī)范》

《國家電網公司軟硬件目標架構設計規(guī)范》

《國家電網公司應用安全設計規(guī)范》

《關于印發(fā)國家電網公司2013年信息化建設實施意見的通知》

《關于印發(fā)國家電網公司2011年信息化建設實施意見的通知》(國家電網信息(2011)218

號)

《關于印發(fā)國家電網公司2012年信息化建設實施意見的通知》(國家電網信通(2012)206

號)

《國家電網公司信息系統上下線管理辦法》(國家電網信息(2009)1277號)

《國家電網公司信息安全加固實施指南》

3術語和定義

3.1數據類型

是數據結構的一個值的集合以及定義在這個值集上的一組操作。

3.2普通索引

無唯一性限制的索引類型。

3.3主鍵索引

唯一性限制的索引類型。

3.4觸發(fā)器

是數據庫保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執(zhí)行不

是由程序調用,也不是手工啟動,而是由事件來觸發(fā)。

3.5存儲過程

是在大型數據庫系統中,一組為了完成特定功能的SQL語句集,存儲在數據庫中,經過第

一次編譯后再次調用不需要再次編譯,用戶通過指定存儲過程的名字并給出參數來執(zhí)行它。

4符號、代號和縮短語

4

T/CSEEXXXX-YYYY

下列符號、代號和縮略語適用于本文件。

SQLStructuredQueryLanguage結構化查詢語言

DDLDataDefinitionLanguage數據定義語言

DMLDataManipulationLanguage數據操作語言

DCLDataControlLanguage數據控制語言

5數據類型遷移對照

5.1Oracle數據類型

數據類描述

BFILE存放在數據庫外的二進制數據,最大長度4G

BLOB二進制數據,最大長度4G

CHAR固定長度字符串,最大長度2000bytes

CLOB字符數據,最大長度4G

DATE日期(日-月-年),DD-MM-YY(HH-M年SS),經過嚴格測試,無干蟲問題

DECIMAL(P,S)數字類型,P為整數位,S為小數位

FLOAT浮點數類型,NUMBER(38),雙精度

INTEGER整數類型,小的整數

LONG超長字符串,最大長度2G,足夠存儲大部頭著作

LONGRAW可變長度的二進制數據,最大長度2G

NCHAR根據字符集而定的固定長度字符串,最大長度2000bytes

NCLOB根據字符集而定的字符數據,最大長度4G

NROWID二進制數據表中記錄的唯一行號,最大長度4000bytes

NUMBER(P,S)數字類型,P為整數位,S為小數位

NVARCHAR2根據字符集而定的可變長度字符串,最大長度4000bytes

RAW固定長度的二進制數據,最大長度2000byles

REAL實數類型,NUMBER(63),精度更高

ROWID數據表中記錄的唯一行號,lObytes

TIMESTAMP日期(日-月一年),DD-MM-YY(HH-M年SS:FF3),經過嚴格測試,無千蟲問題

VARCHAR2可變長度的字符串,最大長度4000byies

5.2SG-RDB-MS數據類型

數據類型描述

BIGINT(size)-9223372036854775808到9223372036854775807常規(guī)。0到18446744073709551615無

符號*。在括號中規(guī)定最大位數。

BLOB用于BLOBs(BinaryLargeOBjects)?存放最多65,535字節(jié)的數據。

CHAR(size)保存固定長度的字符串(可包含字母、數字以及特殊字符)。在拈號中指定字符庠的長度。

最多255個字符。

DATE。日期。格式:YYYY-MM-DD

注釋:支持的范圍是從‘1000-01-01'到'9999T2-31'

DATETIME()*日期和時間的組合。格式:YYYY-MM-DDHH:MM:SS

注粒:支持的范圍是從11000-01-0100:00:00'到'9999-12-3123:59:59,

DECIMAL(size,d)作為字符目存儲的DOUBLE類型,允許固定的小數點。

DOUBLE(size,d)帶有浮動小數點的大數字。在括號中規(guī)定最大位數。在d參數中規(guī)定小數點右惻的最大

位數。

5

T/CSEEXXXX-YYYY

ENUM(x,y,z,etc.)允許你輸入可能值的列表??梢栽贓NV.M列表中列出最大65535個值。如果列表中不存

在插入的值,則插入空值。

注釋:這些值是按照你輸入的順序存儲的。

可以按照此格式輸入可能的值:ENUMCX','Y','Z')

FLOAT(size,d)帶有浮動小數點的小數字。在括號中規(guī)定最大位數。在d參數中規(guī)定小數點右體J的最大

位數。

INT(size)-2147483648到2147483647常規(guī)。0到4294967295無符號*。在括號中規(guī)定最大位數。

LONGBLOB用于BLOBs(BinaryLargeOBjects)o存放最多4,294,967,295字節(jié)的數據。

LONGTEXT存放最大長度為4,294,967,295個字符的字符串。

MEDIUMB1.OB用于BLOBs(BinaryLargeOBjects),存放最多16,777,215字節(jié)的數據。

MEDIUMINT(size)-8388608到8388607普通。0to16777215無符號在括號中規(guī)定最大位數。

MEDIUMTEXT存放最大長度為16,777,215個字符的字符串。

SET與ENUM類似,SET最多只能包含64個列表項,不過SET可存儲一個以上的值。

SMALLINT(size)-32768到32767常規(guī)。0到65535無符號*。在括號中規(guī)定最大位數。

TEXT存放最大長度為65,535個字符的字符串。

TIMEO時間。格式:HH:MM:SS注釋:支持的范圍是從'-838:59:59'到'838:59:59'

TIMESTAMP()*時間戳。TIMESTAMP值使用Unix紀元(T970-01-0100:00:00*UTC)至今的描述

來存儲。格式:YYYY-MMDDHH:MM:SS

注釋:支持的范圍是從‘1970-01-0100:00:01'UTC到'2038-01-0903:14:07,LTC

TINYINT(size)728到127常規(guī)。。到255無符號*。在括號中規(guī)定最大位數。

TINYTEXT存放最大長度為255個字符的字符串.

VARCHAR(sizc)保存可變長曳的字符串(可包含字母、數字以及特殊字符)。在括號中指定字符串的最大

長度。最多255個字符。

注釋:如果值的長度大于255,則被轉換為TEXT類型。

YEAR()2位或4位格式的年。

注釋:4位格式所允許的值:1901到2155。2位格式所允許的值:70至lj69,表示從1970

到2069o

5.3Oracle與SG-RDB-MS數據類型對照

Oracle數據類型SG-RDB-MS數據類型

BLOBBLOB/LONGBLOB/MEDIUMBLOB

CHARCHAR

CLOBVARCHAR/TEXT/MEDIUMTEXT/LONC-TEXT

DATEDATE/DATETIME/TIME/T1MESTAMP

FLOATREAL

FLOAT([1-53])DECIMAL/DOUBLE

FLOAT([54-126])DOUBLEPRECISION

INTEGERBIGINT

LONGLONGBLOB

LONGRAWLONGBLOB

6

T/CSEEXXXX-YYYY

NUMBERNUMERIC

NUMBER(3,0)TINYINT

NUMBER(5,0)SMALLINT

NUMBER(7,0)MEDIUMINT

NUMBER(10,0)INT/INTEGER

NUMBER(19,0)BIGINT

RAWBIT/BLOB/TINYBLOB/LONGBLOB/MEDIUMBLOB

VARCIIAR2VARCHAR/ENUM/SET/TEXT/TTNYTEXT

6常用函數/存儲過程寫法對比

6.1函數

內容數據庫例句標注

當前時間Oracleselectsysdatefromdual:

查詢

SG-RDB-MSselectsysdate0fromdual;SG-RDB-MS需要加雙括

K度Oiacleselectlengtli(c_a)Ciuml_test,

SG-RDB-MS

取指定長Oracleselectsubstr(c_b,1,2)fromt_tcst;

SG-RDB-MS

字符串轉Oracleselectto_number(1123*)fromdual;

數值SG-RDB-MSselectcast('123'assignedinteger)fromdual;dual表可選

數值轉字Orac1eselectlo_char(123)fromdual;

符串SG-RDB-MSselectcast(123aschar)fromdual;dual表可選

字符串轉Oracleselectto_date(*2013-01-01*,'yyyy-mm-dd,)from

日期dual;

SG-RDB-MSselectstrtodateC2013-01-0T,'%YAmAd')fromdual表可選

dual;

字符串轉Orac1eselectto_date(,2013-01-Of,'yyyy-nun-d(r)from

日期dual;

SG-RDB-MSselectstr_to_date(,2013-01-01*,*)fromdual表可選

dual;

條件判斷Oracleselectdecode(c_a,1,1,0)fromttest:使用decode語法?較簡

或者單,也支持case語法

selectcasewhenc_a=lthen1else0endfromttest;

SG-RDB-MSselectcasewhenc_a=lthen1else0endfromttest;只支持case語法

空值判斷Orac1eselectnvl(c_a,0)fromttest;使用nvl

SG-RDB-MSselectifnull(c_a,0)fromt_test;使用ifnull

字符串連Orac1eselectc_a||c_bfromt_test;或者select可以使用‘1'代替

接concat(c_a,c_b)fromt_test;concat語法

SG-RDB-MSselectconcat(c_a,c_b,??,)fromttest;只支持concat語法

7

T/CSEEXXXX-YYYY

6.2存儲過程

類別ORACLESG-RDB-MS類別

創(chuàng)建存儲createorreplaceDROP1.在創(chuàng)建存儲過程時如果存在同

過程語句procedurePADDFAC(PROCEDUREIFEXISTS名的存儲過程,會刪除老的存儲

不同id_fac_cdIN'SD_USER_P_ADD過程.

ES_FAC_UNTT.FAC_USR';oracle使用createorreplace.

_CD%TYPE)iscreateprocedureP_ADD_FAC(SG-RDB-MS使用先刪除老的存儲過

id_fac_cdvarchar(100))程,然后再創(chuàng)建新的存儲過程.

2.oracle存儲過程可以定義在

package中,也可以定義在Procedures

中.如果定義在包中,一個包中可以包

含多個存儲過程和方法.如果定義在

Procedures中,存儲過程中不可以定

義多個存儲過程.

SG-RDB-MS存儲過程中不可以定義多

個存儲過程.

3.oracle中字符串類型可以使用

varchar2.

SG-KDB-MS需要使用varchar

4.Oracle中參數varchar長度不是必

須的.

SG-RDB-MS中參數varchar長度是必

須的,比如varchar(100)

創(chuàng)建函數CREATEORDROPFUNCTIONIF1.在創(chuàng)建函數時如果存在同名的函

語句不同REPLACEFUNCTIONEXISTS'SD_ROLE_F_ROL數,會刪除老的函數.

F_ROLE_FACS_GRP(E_FACS_GRP';CREATEoracle使用createorreplace.

ii_role_int_kcyINFUNCTIONSG-RDB-MS使用先刪除老的函數,然

SD_ROLE.ROLE_IN'SD_ROLE_F_ROL后再創(chuàng)建新的函數.

T_KEY%TYPE)RETURNE_FACS_GRP'(ii_role_int_key2.oracle函數可以定義在package

VARCHAR2INTEGER(10)中,也可以定義在Functions中.如果

)RETURNSvarchar(1000)定義在包中,一個包中可以包含多個

存儲過程和函數.如果定義在

Functions中,每個函數只能定義一個

函數.

SG-KDB-MSFunctions不可以定義多

個函數.

3.oracle返回值用return.

SG-RDB-MS返回值用returns.

8

T/CSEEXXXX-YYYY

傳入參數procedureP_ADD_FAC(createprocedure1.oracle存儲過程參數可以定

寫法不同id_fac_cdINP_ADD_FAC((in)id_fac_cd義為表的字段類型.

ES_FAC_UNIT.FACvarchar(100))SG-RDB-MS存儲過程不支持這種定義

_CD%TYPE)方法.需要定義變量的實際類型和長

度.

2.oracle參數類型in/out/inout寫

在參數名后面.

SG-RDB-MS參數類型

in/out/inout寫在參數名前面.

3.oracle參數類型in/out/inout都

必須寫.

SG-RDB-MS參數類型如果是in,則可

以省略.如果是out或inout則不

能省略.

注意:SG-RDB-MS中指定參數為

IN,OUT,或INOUT只對PROCEDURE是合

法的。

(FUNCTION參數總是被認為是IN參

數)RETURNS字句只能對FUNCTION做

指定,對函數而言這是強制的。它用

來指定函數的返回類型,而且函數體

必須包含一個RETURNvalue語句。

functionfunc_name(createfunction

gw_idin(out)func_name(gw_idvarchar

varchar2)(100))

包的聲明createorreplace拆分成多個存儲過程或函數oracle可以創(chuàng)建包,包中可以包含多

方式package/packagebody個存儲過程和方法.

packagenameSG-RDB-VS沒有沒有包這個柢念,可以

分別創(chuàng)建存儲過程和方法.每個存儲

過程或方法都需要放在一個文件中.

例1:方法命名

oracle中

SD_FACILITY_PKG,F_SEARCH_FACto

SG-KDB-MS

SD_FACILITY_F_SEARCH_FAC

例2:過程荒與

oracle中

SD_FACILITY_PKG.P_ADD_FAC

toSG-RDB-MS

SD_FACILITY_P_ADD_FAC

存儲過程return;LEAVEproc;(proc代表最夕卜層oracle存儲過程和方法都可以使用

返回語句的beginend)return退出當前過程和方法,

不一樣SG-RDB-MS存儲過程中只能使用leave

退出當前存儲過程.不可以使用

return.

SG-RDB-MS方法可以使用return退

出當前方法.

9

T/CSEEXXXX-YYYY

存儲過程EXCEPTIONWHENDECLAREEXIToracle:內部異常不需要定義,在存儲

異常處理OTHERSTHENHANDLER過程或函數末尾寫上EXCEPTION后,

不一樣ROLLBACK;FORSQLEXCEH,ION后面的部分即為異常處理的部分.

ov_rtn_msg:=BEGINoracle可以定義自定義異常,自定義

c_sp_name|'('|ROLLBACK;異常需要使用raise關鍵字拋出異常

li_debug_possetov_rtn_msg后,才可以在EXCEPTION中揖獲.

ID/IISG-RDB-MS:SG-RDB-MS內部異常也需

TO_CHAR(SQconcat(c_sp_name,'(',要先定義,在定義的同時也需要實現

LCODE)|I*:li_debug_pos異常的功能.

'|SUBSTR(SQLERRTOCHAR(SQ目前SG-RDB-MS不支持自定義異常.

M,1,100);LCODE),':\SUBSTR(SQLERR

M,1,100));END:

過程和函聲明變量在begin聲明變量在begin...end體

數的聲明end體之前內,begin之后其他任何內容

變量的位之前

置.不同

NODATEXCEPTION使用FOUNDROWSOoracle中:

A_FOUNDWHENNO_DATAFOUND代替NODATAFOUND.詳見注NODATAFOUND是游標的一個屬性.

異常處理THEN釋.當select沒有查到數據就會出現no

oirtncd:=1;datafound的異常,程序不會向下執(zhí)

ov_rtn_msg行.

:=SD_COMMON.P_G

ET_MSGCDP-CBM-SG-RDB-MS:

OllOOa-016',沒有NO_DATA_FOUND這個屬性.但可

1i_sub_rtn_cd,是使用FOUND_ROWS()方法得到

1v_sub_rtn_msgselect語句查而出來的數據.如果

);FOUND_ROWS()得到的值為0,就進入異

常處理邏輯.

在ProcedureName(參CallProcedureName(參數);SG-RDB-MS存儲過程調用存儲過程,

數);需要使用Callroname(參數).

Oracle調用存儲過程直接寫存儲過

同程名就可以了.

7常見SQL寫法對比

7.1DDL(數據定義語言)

主要包括CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME語句。

7.1.1CREATE

10

T/CSEEXXXX-YYYY

創(chuàng)建表,索引比較。

7.1.1.1CREATETABLE

Createtable語句,兩者在約束等條件下基本一致;其它方面略有差異。對照關系如下表:

內容數據庫例句標注

基本建表Oraclecreatetablet_test(c_aint,c_b基本相同,數據類型:SG-RDB-MS

varchar(255))的INT相當于Oracle中的

NUMBER(10,0))詳見后面數據類型

SG-RDB-MS

章節(jié))

缺省值約束Oraclecreatetablet_test(c_aintdefault0,c_b

SG-RDB-MSvarchar(255

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論