2012-08-30 43 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

我刚刚测试过,并且能够以普通用户的身份提取表结构信息。我没有任何用户定义的数据类型进行测试,但似乎适用于非专业用户。 –

相关问题