天天摸天天碰天天添-小??戳进?无遮挡cos-日韩新无码精品毛片-国产福利姬精品福利资源网址-亚洲日韩va无码中文字幕

免費服務熱線:400-870-1185
在線客服為您服務

免費服務熱線

400-870-1185

工作時間

周一至周五 9:00-18:00

(12:00-13:30及法定假日除外)

如何將SQL 從Microsoft SQL Server 數據庫轉換到SAP HANA數據庫

時間:2018-09-17
分享到 :

如何將SQL 從Microsoft SQL Server 數據庫轉換到SAP HANA數據庫


使用SQL轉換器

該工具將輸入文件(Microsoft SQL 服務器數據庫中的SQL)轉換為輸出文件(可以用在SAP HANA數據庫中的SQL).

你可以使用命令行或GUI模式運行SQL轉換器.

 

 注意

SQL轉換器僅轉換你在Microsoft SQL 服務器數據庫中成功運行的SQL.

先決條件

· 你要在使用 SQL轉換器的計算機上安裝.Net Framework 4.0 或更高版本.

· 在要使用SQL轉換器的計算機上安裝了SAP HANA 數據庫客戶端軟件(32位).更多信息,請參閱SAP幫助門戶上的SAP HANA 數據戶端安裝指南,網址為http://help.sap.com/hana_appliance.

 注意

即使你的Microsoft Windows 是 64 ,你也必須安裝32 位SAP HANA 數據庫客戶端軟件.

· 你已經下載了SQL 轉換器.zip 文件.

· 你確保要轉換的SQL 可以在Microsoft SQL 數據庫中成功運行.

步驟

· 要使用命令行運行SQL轉換器,請按照以下步驟操作:

1. SQL轉換器.zip文件解壓縮到計算機上的任何位置.

2. 在Microsoft Windows命令窗口中,瀏覽到SQL轉換文件夾.更多有關Microsoft Windows 命令的詳細信息,請參閱Microsoft Windows在線幫助中的命令行參考.

3. 輸入 Converter.exe

如果你不使用某個命令行參數,系統將根據你在配置文件中為該參數定義的設置運行該工具.命令行中的參數將覆蓋你在配置文件中定義的參數.有關更多信息,請參閱配置文件和命令行參數.


 注意

如果輸入文件中有多個語句,請用分號";"分割.轉換后,轉換的語句將根據原始序列列在輸出文件中.

例如,輸入文件如下:

select CardCode, CardName from OCRD where CardType = 'C';

select max(DocEntry) from ORDR;

轉換后,輸出文件如下:

SELECT "CardCode", "CardName" FROM OCRD WHERE "CardType" = 'C';

SELECT MAX("DocEntry") FROM ORDR;

 

· 使用GUI模式運行SQL轉換器,請按照以下步驟操作:

1. SQL轉換器.zip文件解壓縮到計算機上的任何位置.

4. SQL轉換器文件夾中,雙擊Converter.exe.

或者,在Microsoft Windows 命令窗口中,瀏覽到SQL轉接器文件夾,然后輸入Converter.exe g.

SQL轉換窗口彈出.

有關設置的詳細信息,請參閱命令行參數.

5. 在SQL轉換窗口中,選擇一個配置文件.默認情況下,在SQL轉換器文件夾中選擇Config.txt文件更多關于配置文件的信息,請參閱配置文件和命令行參數.

你還可以在運行轉換器時修改規設區域中的設置.

6. 在SQL 轉換器窗口中,選擇一個輸入文件,或者輸入要轉換的SQL.

7. 要運行轉換器,請在SQL轉換器窗口中,執行以下操作之一:

選擇(運行轉換器) 圖標.

o 選擇命令 → 運行轉換器.

o 選擇F5鍵盤按鈕.

在輸入文件或輸入框中SQL已被轉換,同時轉換報窗口彈出.

你可以在輸出框中找到已經轉換的SQL.

8. 要將已轉換的SQL保存到輸出文件,請選擇輸出文件字段旁邊的(保存)圖標.

結果

定義的SQLT-SQL 語法轉換為 ANSI-SQL 語法.你可以對已轉換版本執行檢查來確保根據你的需要結果是正確的.

1.1 配置文件

你可以使用Config.txt文件來儲存經常更改的參數.命令行中的參數會覆蓋在配置文件中定的參數.如果不使用某個命令行參數,將根據你在配置文件中為該參數定設置運行工具.

更多關于參數的信息,請參閱命令行參數.

 注意

如果配置文件中包含同一個參數的多個行或值,那么最后一行或值被使用.


 例如

配置文件的示例如下:

// If UseCaseFixer=true, DB objects (tables, columns,...) will be verified.

// If UseCaseFixer=false, DB objects will NOT be verified but the SQL converter will run faster.

UseCaseFixer=false

// Case fixer will use the following DB settings:

DBServer=10.55.178.115:30915

DBSchema=SBODEMOUS

DBUser=SYSTEM

DBPasswd=Manager111

// End of DB settings for the case fixer

// Exclude conversion comments from the output file or not

DisableComments=false

// Specify names for the input and output files

InputFile= c:WorkDirPresentationsHANATranslator_0912Examples.sql

OutputFile= c:WorkDirPresentationsHANATranslator_0912output.sql

// Format the output file in clean and professional SQL layout or not

Formatter=false

// Definition of tokens

TokenFile= c:WorkDirPresentationsHANATranslator_0912tokenFile.txt

// Start using GUI

GUI=true

1.2 命令行參數

你可以在命令行中使用以下參數來覆蓋在配置文件中定的參數.如果不使用某個命令行參數,將根據你在配置文件中為該參數定設置運行工具.

Command-Line Parameters命令行參數

參數

配置文件中等同于

描述

例如

f

UserCaseFixer

允許大小寫修復程序檢查輸入文件中包含的所有表是否在SAP HANA 數據庫中存在.默認值.

-f

s

DBServer

SAP HANA數據庫服務器的地址和端口號

-s 10.55.178.115:30915

d

DBSchema

SAP HANA 數據庫中的模式名稱

-d SBODEMOUS

u

DBUser

用于登錄到SAP HANA 數據庫的用戶名

-u SYSTEM

p

DBPasswd

用于登錄到SAP HANA 數據庫的用戶密碼

-p Manager111

c

DisableComments

從輸出文件中排除轉換注釋.默認值是.

輸出文件中的轉換注釋說明哪些語句已經轉換,哪些未轉換并提供原因.

-c

i

InputFile

輸入文件的路徑

-ic: HANATranslator_0912input.sql

o

OutputFile

輸出文件的路徑

-o c: HANATranslator_0912output.sql

F

Formatter

以干凈和專業化的SQL布局格式化輸出文件.默認值為.

-F

t

TokenFile

令牌文件的路徑.

-t c: HANATranslator_0912tokenFile.txt

g

GUI

啟用SQL 轉換器的GUI模式.默認值為.

-g

h

幫助(不存在于文件中)

顯示命令行參數的幫助

-h

P

創建過程(不存在于文件中)

上下文相關性的查詢情況下啟用自動創建存儲過程.默認值為.

-P

v

版本(不存在于文件中)

顯示工具的名稱和版本

-v

1.3 使用非標準語法(令牌)轉換SQL

為了增加靈活性,SQL 通常使用令牌保存.當你運行保存的SQL,這些令牌會被其他SQL內容替換.

先決條件

· 你已滿足使用SQL轉換的所有先決條件.

· 你已經定義了一個令牌文件來識別令牌.有關更多信息,請參閱令牌文件.

步驟

使用SQL轉換器來轉換包含令牌的SQL,按照使用SQL轉換器相同的步驟,但此外,還必須執行以下操作之一:

· 在配置文件中定義令牌文件的路徑.有關詳細信息,請參閱配置文件.

· 如果使用命令行運行轉換器,則在使用轉換器時使用t參數定義令牌文件的路徑.有關更多信息,請參閱命令行參數.

結果

定義的SQLT-SQL 語法轉換為 ANSI-SQL語法.你可以對已轉換版本執行檢查來確保根據你的需要結果是正確的.

 

 例如

輸入文件如下:

select Column1, [%1], Column2 from TABLE1 where Column1 = [%3];

轉換后,輸出文件如下:

SELECT "Column1", [%1], "Column2" FROM TABLE1 WHERE "Column1" = [%3];

 例如

輸入文件如下:

SELECT $[OTABLE.U_FIELD]+$[$38.U_Numeric.Field] FROM OTABLE WHERE [LastName] Like '%[%0]%' and [Time] = [%1];

轉換后,輸出文件如下:

SELECT $[OTABLE.U_FIELD] + $[$38.U_Numeric.Field] FROM OTABLE WHERE "LastName" LIKE '%[%0]%' AND "Time" = [%1];

1.3.1 令牌文件

你可以使用令牌文件來儲存令牌模式,以便在SQL中令牌可以被識別.模式可以定義為正則表達式,你也可以定義任何你想要的其他模式.

在下載的SQL轉換器.zip 文件中,TokenFile.txt 文件默認包含以下兩種模式:

VarToken=$[[$]*[0-9A-Z_a-z."]+]

VarToken=[%[0-9]+]

這兩個模式支持以下常見的參數樣式:

· [%1], [%2], ...., [%N]

· $[xxx],其中xxx 可以是字符,數字和點.

通過API 使用SQL轉換器

 注意

使用API 的SQL轉換器僅在軟件解決方案遷移期間用于測試目的,因為其性能問題,而不能在實時系統中進行實時轉換.轉換過程是快速的,沒有任何顯著的延遲,但是在數據庫對象(例如列,過程等)名稱中大寫或小寫字母的驗證需要相當多的時間.

你還可以通過擴展組件中的API訪問SQL轉換器函數.這樣,你不需要手動將查詢收集到輸入文件中,然后運行命令行.相反,你可以在擴展組件中包含提供的API,并在使用附加組件時通過提供的API轉換查詢.

你可以在轉換器文件夾中找到使用轉換器作為鏈接庫的示例.示例位于名為[API_Example] 的文件夾中.有關更多信息,請參閱API示例.

先決條件

擴展組件中包含以下庫:

· Antlr3.Runtime.dll

· ConverterLib.dll

你可以在轉換器文件夾中找到這兩個庫.

步驟

1. 初始化SQL 轉換器.

轉換器的初始化實際上是轉換器對象的初始化.轉換器對象的初始化是通過對象的公共構造函數完成的.該構造需要配置文件的完整文件路徑來初始化轉換器.完整文件路徑表示文件路徑和文件名.配置文件和之前在配置文件中所述的相同,除了不使用輸入和輸出文件參數.

 句法

public TranslatorTool(string configPath)

 例如

這個例子是在C#中.

TranslatorTool tool = new TranslatorTool(@"....Config.txt");

1. 轉換SQL 語句.

函數TranslatorTool::TranslateQuery 接受TSQL 字符串并返回到SQLScript中用戶已轉換的字符串.

 句法

string TranslatorTool::TranslateQuery(string inputQuery, out int numOfStatement, out int numOfErrors)

 例如

這個例子是在C#中.

int stmts, errs;

string result =

tool.TranslateQuery("select isnull(code, 0) from oinv;", out stmts, out errs);

2. 關閉SQL 轉換器.

轉換器的關閉包括對轉換器對象的釋放和關閉所分配的資源.

 句法

void TranslatorTool::Close()

 例如

這個例子是在C#中.

tool.Close();

2.1 API 示例

在轉換器文件夾中,你可以找到使用轉換器作為鏈接庫的示例.例子在名為[API_Example]的文件夾中.該文件夾包含一個小的Microsoft Visual Studio項目與鏈接的 SQL 轉換器庫和一個例子.你可以在Microsoft Visual Studio 中打開該文件夾并直接運行準備的示例.

3 標識符

T-SQL 語法中,標識符不區分大小寫字母,但是在ANSI-SQL 語法中,他們區分大小寫字母.當你將SQLMS SQL 服務器數據庫遷移到SAP HANA數據庫,你需要手動修復標識符.轉換工具可以使用Use Case Fixer選項驗證和修復此類標識符問題. 當你使用此選項時,根據SAP HANA 數據庫中現有數據庫對象,SQL中的標識符將被更正,并且注釋也會顯示在輸出文件中.有關此選項的詳細信息,請參閱使用SQL轉換.

 注意

當你使用Use Case Fixer選項時,你必須定SAP HANA 數據庫的連接詳細信息.

 例如

輸入文件如下:

select docnum, DOCNUM, DocNum, nonExistingColumn from oinv;

轉換后,輸出文件如下:

SELECT "DocNum", "DocNum", "DocNum", "nonExistingColumn" FROM OINV;

--[Note:CaseFixer] Column name docnum was changed to DocNum

--[Note:CaseFixer] Column name DOCNUM was changed to DocNum

--[Note:CaseFixer] Column nonExistingColumn not found in given tables

--[Note:CaseFixer] Table name oinv was changed to OINV

SAP HANA 數據庫中,未加引號的標識符被視為全大寫標識符,所以你必須加引號來保存標識符的大小寫. 轉換后,所有大寫標識符不加引號.括號標識符的括號被刪除,并且 [dbo]標識符被刪除.

 例如

輸入文件如下:

select MixedColumn, UCOLUMN, [BrackerColumn], "QuotedColumn", "UQUOTEDCOLUMN" from [dbo].TABLE1;

轉換后,輸出文件如下:

SELECT "MixedColumn", UCOLUMN, "BrackerColumn", "QuotedColumn", "UQUOTEDCOLUMN" FROM TABLE1;

4 支持的數據類型

下表顯示了SQL 轉換器支持的數據類型和在SAP HANA 數據庫中支持的相應數據類型.

支持的數據類型

數據類型類別

 MS SQL 服務器數據庫中的數據類型

 SAP HANA 數據庫匯中的數據類型

Exact numerics

bigint

bigint

bit

tinyint

decimal

decimal

int

integer

numeric

decimal

smallint

smallint

smallmoney

smalldecimal

money

decimal

tinyint

tinyint

Approximate numerics

float

float

real

real

Date and time

date

date

datetime2

timestamp

datetime

timestamp

datetimeoffset

SAP HANA 不支持此數據類型.

smalldatetime

seconddate

time

time

Character strings

char

char

varchar

varchar

text

text

Unicode character strings

nchar

nchar

nvarchar

nvarchar

ntext

nclob

Binary strings

binary

binary

varbinary

varbinary

image

blob

Other Data Types

cursor

SAP HANA 不支持此數據類型.

timestamp

timestamp

hierarchyid

SAP HANA 不支持此數據類型.

uniqueidentifier

nvarchar

sql_variant

SAP HANA 不支持此數據類型.

xml

SAP HANA 不支持此數據類型.

table

SAP HANA 不支持此數據類型.

5 支持的運算符

下表顯示了SQL轉換器支持的運算符.

Supported Operators 支持的運算符

運算符類別

運算

算術運算符

+ (加法), - (減法), *  (乘法), / (除法)

字符串運算符

|| (級聯)

比較運算符

=,>,<,>=,<=,<>, !=, !<, !>

賦值運算符

=

按位運算符

&, |, ^

設置運算符

union, union all, intersect, except

邏輯運算符

and, or, not, all, any, between, exists, in, like, some, is null, is not null

6 支持的表達式

SQL轉換器支持 case 表達式和聚合表達式.

支持的SQL 語句

7.1 支持的DML

下表顯示了SQL 轉換器支持的DML 及相關信息.

DML

Related Information 相關信息

Select

MS SQL 服務器數據庫:http://msdn.microsoft.com/en-us/library/ms189499

 SAP HANA 數據庫:http://help.sap.com/hana/html/sql_select.html

Insert

MS SQL 服務器數據庫:http://msdn.microsoft.com/en-us/library/ms174335

 SAP HANA 數據庫:http://help.sap.com/hana/html/sql_insert.html

Update

MS SQL 服務器數據庫:http://msdn.microsoft.com/en-us/library/ms177523

 SAP HANA 數據庫:http://help.sap.com/hana/html/sql_update.html

Delete

MS SQL 服務器數據庫:http://msdn.microsoft.com/en-us/library/ms189835

 SAP HANA 數據庫:http://help.sap.com/hana/html/sql_delete.html

7.2 支持的DDL

下表顯示了SQL 轉換器支持的DLL 及相關信息.

 

DDL

相關信息

創建表

In the MS SQL服務器數據庫:http://msdn.microsoft.com/en-us/library/ms174979

In the SAP HANA 數據庫:http://help.sap.com/hana/html/sql_create_table.html

創建索引

In the MS SQL服務器數據庫:http://msdn.microsoft.com/en-us/library/ms188783

In the SAP HANA 數據庫:http://help.sap.com/hana/html/sql_create_index.html

創建視圖

In the MS SQL服務器數據庫:http://msdn.microsoft.com/en-us/library/ms187956

In the SAP HANA 數據庫:http://help.sap.com/hana/html/sql_create_view.html

更改表

In the MS SQL服務器數據庫:http://msdn.microsoft.com/en-us/library/ms190273

In the SAP HANA 數據庫:http://help.sap.com/hana/html/sql_alter_table.html

更改索引

In the MS SQL服務器數據庫:http://msdn.microsoft.com/en-us/library/ms188388

In the SAP HANA 數據庫:http://help.sap.com/hana/html/sql_alter_index.html

刪除表

In the MS SQL服務器數據庫:http://msdn.microsoft.com/en-us/library/ms173790

In the SAP HANA 數據庫:http://help.sap.com/hana/html/sql_drop_table.html

刪除索引

In the MS SQL服務器數據庫:http://msdn.microsoft.com/en-us/library/ms176118

In the SAP HANA 數據庫:http://help.sap.com/hana/html/sql_drop_index.html

刪除視圖

In the MS SQL服務器數據庫:http://msdn.microsoft.com/en-us/library/ms173492

In the SAP HANA 數據庫:http://help.sap.com/hana/html/sql_drop_view.html

7.3 支持的復雜語句

SAP HANA 要求你為復雜語句,即具有上下文相關性的語句,創建存儲過程.你可以使用命令行參數P在復雜語句的情況下自動創建存儲過程.如果你不使用這個參數,那么這些復雜語句將轉換為單獨的語句,也就是說,它們不能被整合到存儲過程中.

支持的復雜語句有: While statement, If statement, Declare Variable/Cursor, Create/Drop/Alter 過程.

 注意

變量被轉換為純文本名稱.

8 支持的功能限制

8.1 連接字符串

T-SQL語法中,運算符"+"用于連接字符串,但是在ANSI-SQL語法中,運算符"||" 用于連接字符串.在這兩種語法中,運算符"+"用于算術加法.

下表顯示了SQL 轉換器連接字符串所遵循的規則.

Rules for Concatenating Strings連接字符串規則

輸入文件中的表達式

輸出文件中的結果

number + number

number + number

number + string

number + string

string + string

string || string

All other expressions

operand1 +operand2

8.2 轉換日期格式

T-SQL語法包含幾個日期格式,以下部分描述如何轉換這些日期格式.

8.2.1 使用 String 作為DATE 參數

T-SQL 語法中,常用的格式為"YYYYMMDD" 被轉換為 "YYYY-MM-DD",如下所示:

'20010101 10:00:00.000' => '2001-01-01 10:00:00.000'

All functions in SQL Script support the translated format. SQL 腳本中的所有功能都支持已轉換的格式.

 注意

用作日期的所有字符串最前面和最后空格被裁減,如下所示:

'  20010101 '   -> '2001-01-01'

8.2.2 使用整數值作為DATE參數

T-SQL語法中,整數值被轉換為DATE, 如下所示:

0 = "1900-01-01"

1 = "1900-01-02"

ANSI-SQL語法中,沒有從整數值到DATE 隱式轉換格式.SQL轉換器轉換整數值使用在DATE參數過程中,如下所示:

Integer_Value => ADD_DAYS("1900-01-01 00:00:00.000, Integer_Value) 整數_值 => 增加_天數("1900-01-01 00:00:00.000, 整數_值)


TransInfo斯凱普斯是SAP制造業解決方案核心合作伙伴,SAP金牌實施商專注上海/無錫/蘇州/廣州/深圳/東莞/成都等地SAP ERP軟件SAP制造業ERP軟件、 電子制造ERP醫藥行業ERP精細化工ERP機械制造行業ERP實施服務



主站蜘蛛池模板: 最新69成人精品视频免费| 亚洲国产精品无码久久久久高潮 | 国产亚洲精品成人aa片| 蜜臀av在线播放一区二区三区| 欧美精品一国产成人综合久久| 少妇激情av一区二区三区| 欧美黑人大战白嫩在线| 欧美成人免费全部| 人成午夜免费视频无码| 国产成人综合亚洲色就色| 欧美丰满老熟妇xxxxx性| 狠狠色丁香久久婷婷综| 国产成人一区二区精品视频| 久久精品无码一区二区三区| 久久人人爽人人人人片| 丁香婷婷综合激情五月色 | 西西人体44www大胆无码| 国产精品成人嫩草影院| 丝袜老师办公室里做好紧好爽 | 日本边添边摸边做边爱| 久久精品99国产精品亚洲| 国产成人精品免费午夜app| 日本一区二区三区不卡免费| 天堂资源最新在线| 日韩精品久久久肉伦网站| 免费人成小说在线观看网站 | 亚洲欧美v国产一区二区| 色老99久久精品偷偷鲁| 少妇极品熟妇人妻无码| 做受??高潮片少萝| 日韩精品真人荷官无码| 久久亚洲一区二区三区四区| 久久精品久久久久久噜噜| 国产台湾无码av片在线观看| 无码加勒比一区二区三区四区 | 亚洲h成年动漫在线观看网站 | 欧美日韩不卡视频合集| 99久久国语露脸精品国产色| 亚洲国产成人无码影片在线播放| 欧美人与物videos另类| 亚洲国产无套无码av电影|