2012-08-30 71 views
0

源Sybase數據庫中有數百個自定義數據類型需要位於新創建的新目標Sybase DB中。如何從一個Sybase數據庫導出自定義數據類型並導入到另一個數據庫?

通過一些煩躁不安,我能夠創建一個腳本來提取所有自定義數據類型並將其從源數據庫添加到目標數據庫中。不過,我不斷收到以下錯誤:

Number (257) Severity (16) State (1) Server (ASED052) Implicit conversion from datatype 'NUMERIC' to 'VARCHAR' is not allowed. Use the CONVERT function to run this query.

我查和雙重檢查所有的類型匹配(雖然類型的源CHAR被製成目的地VARCHAR,我覺得這是一個不錯的隱轉換?)

有沒有辦法創建一個腳本,允許我從源數據庫導出所有自定義數據類型並將它們導入到目標數據庫中,以便類型匹配並且不存在轉換問題?

回答

1

深入研究ddlgen sybase附帶的實用程序,通常位於Sybase Central目錄或$ SYBASE/ASEP/bin中。 Sybase版本之間的語法可能略有不同,但您應該能夠生成腳本以創建包括用戶定義數據類型(UDD),索引,存儲過程等的所有數據庫對象。

如果您只希望用戶-defined數據類型,查看「-T」標誌,它允許您選擇特定的對象類型。

+0

是否需要DBA許可才能運行? – czchlong

+0

可能。 ddlgen二進制文件位於Sybase安裝中,因此您可能必須使用dba才能訪問它。它不應該造成很大的開銷,因爲它只是查詢系統表。就權限而言,我不確定,但是當我有機會時,我會試着去測試它。 –

+0

我剛剛測試過,並且能夠以普通用戶的身份提取表結構信息。我沒有任何用戶定義的數據類型進行測試,但似乎適用於非專業用戶。 –

相關問題