Tsql 如何从一个Sybase DB导出自定义数据类型并导入到另一个?

Tsql 如何从一个Sybase DB导出自定义数据类型并导入到另一个?,tsql,sybase,Tsql,Sybase,源Sybase DB中有数百种自定义数据类型,需要位于新创建的目标Sybase DB中 通过一些调整,我能够创建一个脚本来提取源数据库中的所有自定义数据类型并将其添加到目标数据库中。但是,我不断遇到以下错误: Number(257)严重性(16)状态(1)服务器(ASED052)不允许从数据类型“NUMERIC”隐式转换为“VARCHAR”。使用CONVERT函数运行此查询。 我检查并再次检查了所有类型是否匹配(虽然源代码中的CHAR类型在目标代码中被设置为VARCHAR,但我认为这是一个好的隐

源Sybase DB中有数百种自定义数据类型,需要位于新创建的目标Sybase DB中

通过一些调整,我能够创建一个脚本来提取源数据库中的所有自定义数据类型并将其添加到目标数据库中。但是,我不断遇到以下错误:

Number(257)严重性(16)状态(1)服务器(ASED052)不允许从数据类型“NUMERIC”隐式转换为“VARCHAR”。使用CONVERT函数运行此查询。

我检查并再次检查了所有类型是否匹配(虽然源代码中的
CHAR
类型在目标代码中被设置为
VARCHAR
,但我认为这是一个好的隐式转换?)


有没有一种方法可以创建一个脚本,允许我从源数据库导出所有自定义数据类型,并将它们导入到目标数据库中,这样类型就会匹配,并且不会出现转换问题?

查看sybase附带的ddlgen实用程序,通常可以在sybase中央目录中找到,或者$SYBASE/ASEP/bin。Sybase版本之间的语法可能略有不同,但您应该能够生成脚本来创建所有数据库对象,包括用户定义的数据类型(UDD)、索引、存储过程等


如果您只需要用户定义的数据类型,请查看“-T”标志,它允许您选择特定的对象类型。

可能。ddlgen二进制文件在Sybase安装中,因此您可能需要与dba合作才能访问它。它不应该造成太多的开销,因为它只是查询系统表。就权限而言,我不确定,但我会在有机会的时候尝试测试它。我刚刚测试过,作为一个普通用户,我能够提取表结构信息。我没有任何用户定义的数据类型可供测试,但它似乎适用于非特权用户。